| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Логика работы server_na me, conflicting server name
 
 
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#listen
listen xxx default;
On 04.03.2009, at 20:01, Kokorin Slava wrote:
 
Понял, спасибо.
Меня смущает только один момент.
Когда вторым станет server {} без server_names, то он вообще будет  
работать? 
Ведь "Если в запросе нет заголовка "Host" или же в нём указано имя,
неописанное ни в одном сервере, слушающем на адресе и порту, на  
которые
пришёл запрос, то запрос будет обслужен сервером, у которого первым  
описаны 
эти адрес и порт."
4 марта 2009 г. 19:12 пользователь Igor Sysoev <is@xxxxxxxxxxxxx>  
написал: 
 
On Wed, Mar 04, 2009 at 07:02:16PM +0300, Slava Kokorin wrote:
 
Привет!
Есть nginx/0.5.35
Возникла необходимость логировать POST запросы, и появилась мелкая
 
проблема.
 
Есть такой конфиг:
http {
  server {
       include      listen.conf;
       location / {
           proxy_pass         http://127.0.0.1:80;
       }
   }
   server {
       include      listen.conf;
       server_name serv.ru www.serv.ru;
       location / {
           proxy_pass         http://127.0.0.1:80;
           proxy_redirect     off;
           proxy_set_header   Host             $http_host;
           proxy_set_header   X-Real-IP        $remote_addr;
           access_log         off;
client_body_in_file_only on;  ## This is to keep temp  
files
 
with
 
POST requests
       }
   }
}
Важно: в первом блоке server {}  директивы server_names нету вообще.
После добавления второй секции server {}, где явно указал некоторые
server_name, наблюдаю:
# nginx -c /usr/local/etc/nginx/nginx.conf
2009/03/04 18:49:58 [warn] 95904#0: conflicting server name  
"serv.ru" on
89.108.xx.xx:80, ignored
Так совпало, что одно из этих имён есть hostname сервера
# hostname
serv.ru
Вот тут
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#server_name
читал про то, что "Первое имя становится основным именем сервера. По
умолчанию используется имя машины (hostname)."
Вопрос 1: Верно ли я понимаю, что запросы на serv.ru обрабатываются
 
первым
 
server {} ?
 
Да.
 Вопрос 2: Как сделать так чтобы запросы на serv.ru обрабатывались  
вторым
server {}?  Можно ли сделать это не трогая первый блок server {} ?
 
Только, если поменять их местами.
--
Игорь Сысоев
http://sysoev.ru
 
--
Regards,
Slava
 
 
 |