Порядок выбора server

Martsul, Vladimir mvs at contek.ru
Thu Aug 14 12:55:43 MSD 2008


nginx.conf, конфиг №1:

http {
 server {
  listen 1.2.3.4:80;
  server_name .site1.ru;
  error_log /var/www/site1/logs/error.log notice;
  access_log /var/www/site1/logs/access.log debug;
  root /var/www/site1/www/;
 }

 server {
  listen 1.2.3.4:80;
  server_name .site2.ru;
  error_log /var/www/site2/logs/error.log notice;
  access_log /var/www/site2/logs/access.log debug;
  root /var/www/site2/www/;
 }
}

Как и описано в документации, "если в запросе нет заголовка "Host" или же в нём указано имя, неописанное ни в одном сервере,
слушающем на адресе и порту, на которые пришёл запрос, то запрос будет обслужен сервером, у которого
первым описаны эти адрес и порт", т.е. ответит site1.ru


А вот если вынести конфиги server'ов в отдельные файлы и подключить их кучей
nginx.conf, конфиг №2:

http {
 include /etc/nginx/vhosts.d/*.conf;
}

# ls -l /etc/nginx/vhosts.d/*.conf
000_site1.conf
101_site2.conf

то запрос без хоста почему-то отдаётся на site2.ru, хотя он описан позже.

Использовать "listen 1.2.3.4:80 default;" только в первом сервере не могу, т.к. в общем случае она (и
другие параметры) тоже инклудится во все сервера из файла с общей конфигурацией.



More information about the nginx-ru mailing list