ПРОЕКТЫ 


  АРХИВ 


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]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Особенность обработки server_name
  • From: Vyacheslav Kokorin <slava@xxxxxxxxxxxx>
  • Date: Thu, 9 Feb 2006 12:51:10 +0300
  • Organization: Peterhost.RU

Здравствуйте, 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



 




Copyright © Lexa Software, 1996-2009.