Re: Конфликт allow, deny с error_page в внутри server или ошибка конфигурации?

subscribe at hub21.ru subscribe at hub21.ru
Wed Feb 27 18:10:50 UTC 2013


Maxim Dounin писал 2013-02-27 22:05:
> 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;
> 
> И всё будет.

Спасибо, Максим! Помогло.



Подробная информация о списке рассылки nginx-ru