Порядок выбора 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