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

Slava Kokorin slava.kokorin at gmail.com
Wed Mar 4 19:02:16 MSK 2009


Привет!

Есть 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 {} ?

Спасибо!

-- 
Regards,
Slava
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090304/3fc6e44c/attachment.html>


More information about the nginx-ru mailing list