Re: Проблема с error page

2013-06-08 Пенетрантность Oleksandr V. Typlyns'kyi
Today Jun 8, 2013 at 02:30 SenatoR wrote:

 Столкнулся с непонятной мне проблемой. nginx 1.4.1. Имеется связка nginx +
 php-fpm. Возникла необходимость в одном домене заблокировать несколько ip
 адресов для режима post. Написал вот такой листинг:
 
 location ~ \.php$ {
   if ($request_method = POST) {
   return 412;
 }
   error_page 412 = @check;

 }
 
  location @check
  {
   deny ip1;
   deny ip2;
   error_page 403 http://sitename.ru/error_blocked.html;  

  }

 Однако, все равно мне выводится стандартное уведомление об ошибке. Я
 пробовал вместо адреса с http указывать новый location:
 error_page 403 @why;
 Не работает! Пробовал указывать новый путь:
 error_page 403 /error_403.html;
 не работает
 
 В связи с этим вопросы:
 1) Перенаправление на проверку явно сделано не самым удобным образом (через
 пененаправление error_page 412), может кто-то подскажет способ лучше?

  http://nginx.org/r/limit_except/ru
  Вначале deny тем некоторым IP, а после allow all.
  И error_page 403 /error_403.html в этом location.

 2) Что я делаю не так с error_page? Мне нужно, чтобы он открыл заготовленный
 файл с расшифровкой почему нельзя и все. 

  Несколько перенаправлений через error_page по умолчанию запрещены:
  http://nginx.org/r/recursive_error_pages/ru

-- 
WNGS-RIPE

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проблема с error page

2013-06-08 Пенетрантность Maxim Dounin
Hello!

On Sat, Jun 08, 2013 at 02:30:04AM -0400, SenatoR wrote:

[...]

 В связи с этим вопросы:
 
 1) Перенаправление на проверку явно сделано не самым удобным образом (через
 пененаправление error_page 412), может кто-то подскажет способ лучше?

Уже подсказали.

 2) Что я делаю не так с error_page? Мне нужно, чтобы он открыл заготовленный
 файл с расшифровкой почему нельзя и все. 

Повторная обработка ошибок с помощью директивы error_page - по 
умолчанию запрещена, чтобы не создавать циклов.

Разрешить можно с помощью директивы recursive_error_pages, 
http://nginx.org/r/recursive_error_pages/ru.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проблема с error page

2013-06-08 Пенетрантность SenatoR
Большое Вам спасибо за ответ!

limit excep - это то, что нужно! Однако, я столкнулся с непонятным мне
эффектом. Я поместил это дело в location для php:


location ~ \.php$ {

limit POST {
deny ip1;
allow all;
}
.
}

Работает как надо. Но если я создам файл, просто список запрещенных ip может
обновляться, и помещу в него ровно эти строки, чтобы стало вот так:

location ~ \.php$ {

include blacklist.conf;
..
}

то он блокирует GET запросы (на запретных IP) и разрешает POST. Если
поместить в файл:

limit_except GET {
deny ip1;
allow all;
}

то запрещает POST, а GET разрешает. Это что-то вообще мне непонятное.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,239962,239966#msg-239966

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru