Як встановити хост за замовчуванням для nginx?


11

Я намагаюся розібратися, як встановити хост за замовчуванням для моєї установки nginx. Я знайшов цю статтю у nginx Wiki:

http://wiki.nginx.org/NginxVirtualHostExample#A_Default_Catchall_Virtual_Host

На жаль, це не працює. Після перезавантаження я отримую це:

Restarting nginx: nginx: [emerg] unknown directive "http" in /etc/nginx/sites-enabled/catchall:1
nginx: configuration file /etc/nginx/nginx.conf test failed

Після видалення директиви http я отримую таке:

Restarting nginx: nginx: [emerg] unknown log format "main" in /etc/nginx/sites-enabled/catchall:7
nginx: configuration file /etc/nginx/nginx.conf test failed

Я перебуваю на Ubuntu 10.04.3, де я використовую офіційний nginx PPA. Запущена версія 1.0.9 nginx.

Відповіді:


16

Конфігурації Nginx засновані на серії вкладених блоків. Має бути лише один блок http. Зазвичай це визначено в /etc/nginx/nginx.conf - всі включені файли (наприклад, із доступних сайтів) включаються до цього блоку http. Для того, щоб встановити хост за замовчуванням / загальний доступ, вам знадобиться лише розділ блоку сервера для вашого хоста за замовчуванням. Це досягається додаванням "за замовчуванням" до директиви про прослуховування. Крім того, звичайно використовувати ім’я_сервера, яке не відповідає жодному справжньому імені - як правило, підкреслення ("_"), але інші символи також прийнятні. Якщо опустити параметр за замовчуванням, перший серверний блок трактується як за замовчуванням. (Додаткову інформацію див. У посібнику nginx щодо імен серверів )

Конфігурація nginx за замовчуванням ("оригінал" у цьому контексті) може включати блок сервера за замовчуванням (catch-all) у nginx.conf, який ви можете налаштувати.

Що стосується другої помилки, переконайтеся, що 'main' визначено в nginx.conf (рядок повинен починатися з 'log_format main ...' (і, звичайно, перевірити дужки). Ви можете повністю опустити рядок 'access_log'. якщо ви не хочете, щоб запити до вашого сервера за замовчуванням реєструвалися (або ви можете змінити формат, визначивши новий формат).


Це було швидко. Спасибі. Спробуй це завтра після сну трохи ;-).
Ульф Клозе

Використання _ як імені_сервера не додає сервера "за замовчуванням" {}, воно просто використовується, щоб запобігти конфлікту з catchall з іншими серверними блоками, тому в директиві про прослуховування немає "переопрацювання" щодо прапора за замовчуванням. Це єдине, що явно позначає сервер за замовчуванням. І все-таки +1
кольбіяк

@kolbyjack - Дякую за виправлення - я виправлю це у своїй відповіді.
cyberx86

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.