ПРОЕКТЫ 


  АРХИВ 


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]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Логика работы server_name, conflicti ng server name
  • From: Kokorin Slava <slava@xxxxxxxxxxxx>
  • Date: Wed, 4 Mar 2009 20:01:12 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to :content-type; bh=FGVr/bnw4PKkaa3+uvsXeigADBUPzlaGJ47OI3FA7oc=; b=jpb5tgoOTAwwjhqs2Wssyh+TJNWjhRRDCEkFQhvLUXapjlIRQ9HHdBNeciTt/4yBm9 2LkwFPezdVrid+ciSRqBg0epXSe1uGVIMnh4GHGf7KOGoq5O50RYgZMtg3bWfZQSuiJA k/3k3UdlOovKS77f3XEU1G6v3o/R5euUUUr4Q=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=W7CtW4jfoU+mSlppgig6zhetgKd9/RrmPG1JfxZmgVDjI3Y3ehPnVTzWsUvPsU4Zfi W+AgVagylYsWm60vO/0YIFGN4FeilcL7/N3PRHxNkysbiiAwMXx2NWcYIJGGfsSv7iLN cmaYGmDDPlU0MLuHUHW9MKvNy+WgtmRoe70Gk=
  • In-reply-to: <20090304161238.GG87360@xxxxxxxxxxxxx>
  • References: <f3d61e250903040802h481ca761y216c7d7e5402ef9c@xxxxxxxxxxxxxx> <20090304161238.GG87360@xxxxxxxxxxxxx>

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

Меня смущает только один момент.
Когда вторым станет 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


 




Copyright © Lexa Software, 1996-2009.