Я пытаюсь понять, как установить хост по умолчанию для моей установки nginx. Я нашел эту статью в вики nginx:
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, где использую официальный PPA для nginx. Версия 1.0.9 nginx запущена.
Конфигурации Nginx основаны на серии вложенных блоков. Должен быть только один блок http. Обычно это определяется в /etc/nginx/nginx.conf - все включенные файлы (например, с доступных сайтов) включаются в этот блок http. Чтобы настроить хост по умолчанию / для приема всей почты домена, вам понадобится только раздел блока сервера для вашего хоста по умолчанию. Это достигается путем добавления слова default в директиву listen. Кроме того, обычно используется server_name, которое не соответствует никакому реальному имени - обычно это подчеркивание ("_"), но допустимы и другие символы. Если вы опустите параметр по умолчанию, первый серверный блок будет считаться блоком по умолчанию. (См. Nginx's руководство по server_names Чтобы получить больше информации)
Конфигурация nginx по умолчанию (в данном контексте «исходная») может включать в себя блок сервера по умолчанию (универсальный) в nginx.conf, который вы можете настроить.
Что касается второй ошибки, убедитесь, что 'main' определено в nginx.conf (строка должна начинаться с 'log_format main ...' (и, конечно, проверьте свои скобки). Вы можете полностью опустить строку 'access_log' если вы не хотите, чтобы запросы к вашему серверу по умолчанию регистрировались (или можете изменить формат, определив новый формат).
Попробуй это. Заменить return 404
с любым действием по умолчанию, которое вы хотите.