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
|