Добрые сутки! Столкнулся с непонятной мне проблемой. 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@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru