ПРОЕКТЫ 


  АРХИВ 


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]

Re: проблема с limit_except



Hello!

On Tue, Nov 03, 2009 at 07:19:30PM +0300, Artem Danilenko wrote:

> Приветствую! 
> 
> > > 
> > > Понадобилось нескольким сетям закрыть POST!
> > > 
> > >     location / {
> > >  [skip]
> > > limit_except  GET {
> > >     deny    xx.xx.xx.0/20;
> > >     deny    xy.xy.xy.0/24;
> > >     allow   all;
> > 
> > +          proxy_pass  http://127.0.0.1/;
> > 
> > > }        proxy_pass  http://127.0.0.1/;
> > >  [skip]
> > >       }
> > > 
> > >     location @apache {
> > >         proxy_pass  http://127.0.0.1/;
> > >  [skip]
> > >       }
> > > 
> > > Когда клиент из deny сетей пытается сделать POST, он получает 403 и это 
> > > работает правильно, но тогда все остальные при POST, получают 404. В 
> > > error.log видно, что запросы не идут на прокси, а идут в "root html" 
> > > который в этом локейшене не определен, т.е. берется тот, что по умолчанию.
> > 
> > Директива proxy_pass не наследуется, внутри блока limit_except её надо явно 
> > указывать.
> 
> Добавил:
> nginx -t
> [emerg]: "proxy_pass" may not have URI part in location given by regular 
> expression, or inside named location, or inside the "if" statement, or inside 
> the "limit_except" block in /etc/nginx/nginx.conf:169
> configuration file /etc/nginx/nginx.conf test failed

Очевидное решение - спилить URI part.

-          proxy_pass  http://127.0.0.1/;
+          proxy_pass  http://127.0.0.1;

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.