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