Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Порядок выбора server
- To: <nginx-ru@xxxxxxxxx>
- Subject: Порядок выбора server
- From: "Martsul, Vladimir" <mvs@xxxxxxxxx>
- Date: Thu, 14 Aug 2008 15:55:43 +0700
- Content-class: urn:content-classes:message
- Thread-index: Acj964kCtQ7PUbsJReaT4p9QOxrUVw==
- Thread-topic: Порядок выбора server
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;" только в первом сервере не могу, т.к.
в общем случае она (и
другие параметры) тоже инклудится во все сервера из файла с общей конфигурацией.
|