ПРОЕКТЫ 


  АРХИВ 


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]

Проблема с error page


  • To: nginx-ru@xxxxxxxxx
  • Subject: Проблема с error page
  • From: "SenatoR" <nginx-forum@xxxxxxxx>
  • Date: Sat, 08 Jun 2013 02:30:04 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=6Zk79EFdmhAAWKRY/9FiqIlmSiPHb+1eF7KNGNF8dZc=; b=lRY+I/+gC5+VajwrUxIBQDz10tqre1ggNh5HueO7JxfVXwJqM+35Hj3RaUt5PvnlnbxjyhXnSJn6Bnx7JDazjAoCHXqu6lCFo/Kva44myPhGFpUD9U9OiSHvgmvoavAWuU9GZ92InFWjxaFDl/cStqnrsJ7s/x6zlXa9aNEvE+0=;

Добрые сутки!

Столкнулся с непонятной мне проблемой. nginx 1.4.1. Имеется связка nginx +
php-fpm. Возникла необходимость в одном домене заблокировать несколько ip
адресов для режима post. Написал вот такой листинг:

        location ~ \.php$ {
        
              if ($request_method = POST) {
              return 412;
              }
      error_page 412 = @check;

            try_files $fastcgi_script_name =404; # Проверка наличия скрипта,
иначе ошибка 404
            
            fastcgi_pass   unix:/var/run/php-fpm-pool.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
        }

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


            try_files $fastcgi_script_name =404; # Проверка наличия скрипта,
иначе ошибка 404
            
            fastcgi_pass   unix:/var/run/php-fpm-pool.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
     }

В секции "/" лежат простые rewrite на подобие этого:

    location / 
    {
      rewrite ^/(.+)\.(html|htm)$ /index.php
    }

Однако, все равно мне выводится стандартное уведомление об ошибке. Я
пробовал вместо адреса с http указывать новый location:

error_page 403 @why;

Не работает! Пробовал указывать новый путь:

error_page 403 /error_403.html;

не работает!!!!

В связи с этим вопросы:

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

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

Заранее спасибо!

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

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


 




Copyright © Lexa Software, 1996-2009.