Re: Логика работы server_name, conflicting server name

Kokorin Slava slava at skitalets.ru
Wed Mar 4 20:01:12 MSK 2009


Понял, спасибо.

Меня смущает только один момент.
Когда вторым станет server {} без server_names, то он вообще будет работать?

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

4 марта 2009 г. 19:12 пользователь Igor Sysoev <is at rambler-co.ru> написал:

> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090304/44e518d4/attachment.html>


More information about the nginx-ru mailing list