Особенность обработки server_name

Vyacheslav Kokorin slava at peterhost.ru
Thu Feb 9 12:51:10 MSK 2006


Здравствуйте, nginx-ru!

 Версия nginx/0.3.20

 Задача: Разрешить проксировать только один виртуальный хост,
 остальные запретить.

 Выдержка из конфиг файла, отвечающего за виртуальные хосты.

    server {
        listen  80.93.56.xx:80;
        server_name server.new.local;
        location / {
            access_log  /var/log/nginx-access.log; #off;
            proxy_pass  http://backend:8080/;
    }
    server {
        listen  80.93.56.xx:80;
        location / {
            deny all;
        }
    }

server.new.local имеет соответствующую запись в /etc/hosts на клиентской
машине.

Проблема в том, что при такой схеме запрос на IP 80.93.56.xx с любым server_name
проксируется на backend.

Если переставить местами блоки server { ... },  то всё работает корректно.

В принципе, ничего страшного нет - нужной функциональности можно
добиться и так, но ведь, по идее, запрос на backend не должен
проходить по условию несовпадения server_name. Или я что-то упустил?


-- 
С уважением, Вячеслав Кокорин
Системный администратор хостинга PeterHost.Ru
Тел: (812) 34-777-43
     (495) 540-56-33
http://www.PeterHost.Ru



More information about the nginx-ru mailing list