ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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;" только в первом сервере не могу, т.к. 
в общем случае она (и
другие параметры) тоже инклудится во все сервера из файла с общей конфигурацией.



 




Copyright © Lexa Software, 1996-2009.