Re: Конфликт allow, deny с error_page в внутри server или ошибка конфигурации?
Maxim Dounin
mdounin at mdounin.ru
Wed Feb 27 18:05:35 UTC 2013
Hello!
On Wed, Feb 27, 2013 at 09:19:03PM +0400, subscribe at hub21.ru wrote:
> Доброго времени суток сообществу.
> Странная проблема замечена с nginx.
> Пример моей конфигурации:
>
> server {
[...]
> allow 10.0.0.0/8;
> deny all;
>
> location / {
> index index.php;
> }
[...]
> include /etc/nginx/error_pages.conf;
> location /error_pages/ {
> internal;
> root /srv/http/webstatic/html;
> }
>
> }
> Содержимое /etc/nginx/error_pages.conf:
> error_page 400 /error_pages/400.html;
> error_page 401 /error_pages/401.html;
> error_page 402 /error_pages/402.html;
> error_page 403 /error_pages/403.html;
[...]
> При такой конфигурации перестаёт работать error_page 403. Вместо
> того, что задано, nginx отдаёт стандартную страничку ошибки. Если
> перенести директивы allow, deny в внутрь location /
> Отдаёт указанную страничку нормально. С остальными страничками
> проблем не замечено.
> Пробовал указывать уровень логирования debug в error_log, но ничего
> подозрительного по данной проблеме не заметил.
> В чём может быть дело?
У вас запрещён доступ к /error_pages/403.html, и nginx не может
отдать 403-ю ошибку. Решение - дописать в "location /error_pages/"
allow all;
И всё будет.
--
Maxim Dounin
http://nginx.com/support.html
Подробная информация о списке рассылки nginx-ru