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

Andrew Kopeyko kaa at ramtel.ru
Thu Feb 9 13:04:35 MSK 2006


On Thu, 9 Feb 2006, Vyacheslav Kokorin wrote:

> Здравствуйте, 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;
   +      listen  80.93.56.xx:80 default;
>        location / {
>            deny all;
>        }
>    }
>
> server.new.local имеет соответствующую запись в /etc/hosts на клиентской
> машине.
>
> Проблема в том, что при такой схеме запрос на IP 80.93.56.xx с любым server_name
> проксируется на backend.
>
> Если переставить местами блоки server { ... },  то всё работает корректно.
>
> В принципе, ничего страшного нет - нужной функциональности можно
> добиться и так, но ведь, по идее, запрос на backend не должен
> проходить по условию несовпадения server_name. Или я что-то упустил?

Вы пропустили параметр default
http://www.sysoev.ru/nginx/docs/virtual_hosts.html


-- 
Best regards,
Andrew Kopeyko <kaa at ramtel.ru>


More information about the nginx-ru mailing list