ПРОЕКТЫ 


  АРХИВ 


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]

Re: Allow, deny и error_page 403



Спасибо!

По логике вашего конфига разобрался. Не хватало директивы "allow all". В итоге получился такой сниппет, который можно включить в любой server {...}:

allow 1.2.3.0/24;
deny all;

error_page 403 = @maint;
location @maint {
    allow all;
    proxy_set_header maint.server.com;
    proxy_pass http://main.server.com;
}



13 сентября 2012 г., 14:27 пользователь Alexey V. Karagodov <kav@xxxxxxxxxxxxxx> написал:
у меня работает вот так: 

www:~ # cat /opt/nginx/conf/include/location/error_page_lite
 location @error_page_403 {
 include  include/template/no-logging;
 satisfy  any;
 allow    all;
 root     /local/www/vhosts/service/error;
 try_files        /$host/403.html /$host/index.html /403.html /index.html =403;
 }
 location @error_page_497 {
 include  include/template/no-logging;
 root     /dev/null;
 rewrite  ^       https://$host$request_uri?      permanent;
 }
 location @error_page_lite {
 include  include/template/no-logging;
 root     /local/www/vhosts/service/error;
 try_files        /$host/index.html /index.html =404;
 }
www:~ # 


On 13.09.2012, at 14:48, Daniil <dan@xxxxxxxxxx> wrote:

Здравствуйте,

При проведении технических работ на сайте обычно пользовались следующей конструкцией:

allow 1.2.3.0/24;
deny all;

потом заходили с 1.2.3.0/24 и тестировали. Все остальные посетители в это время видели "403 Forbidden".
Затем решили добавить страницу "Сайт временно недоступен. Извините..."

При добавлении строк:

error_page 403 = @maint;
location @maint {
    proxy_set_header maint.server.com;
    proxy_pass http://maint.server.com;
}

nginx все равно возвращает "403 forbidden".

Однако, если сделать например так:

location @maint {
    return 302 http://maint.server.com;
}

то происходит редирект.

Скажите, в чем ошибка? Или это особенность реализации директивы deny и error_page?

Версия nginx 1.3.6
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


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



--
С уважением,
Даниил Болсун
системный администратор
Onliner.by
тел/факс. +375 17 2271696
тел. +375 29 7755080
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.