Проблема с обработчиком error_page в именованном location
Michael Plostak
plostak на gmail.com
Ср Апр 14 03:58:25 MSD 2010
Помогите выставить свой error_page для именованного location (nginx/0.7.64).
В приведенной ниже конфигурации, для событий проходящих мимо @nocached
корректно выдается index_error.html в ответ на ошибку 503, а вот для
попадающих в него - отвечает встроенный обработчик nginx.
Максимум что удалось нагуглить похожего -
http://www.ruby-forum.com/topic/141251, к сожалению не помогло.
---
С уважением,
Михаил.
P.S.: значимая часть конфига:
server {
listen aaa.bbb.ccc.ddd:80;
server_name some.server.name;
error_page 500 502 503 504 /index_error.html;
location = /index_error.html {
root /somewere/www;
}
location / {
proxy_pass http://172.20.0.3:80/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
location @nocached {
error_page 500 502 503 504 /index_error.html;
proxy_pass http://172.20.0.3:80;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
access_log /var/log/nginx/nocache.log cache;
}
location = / {
proxy_pass http://172.20.0.3:80;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
access_log /var/log/nginx/cache.log cache;
if ($is_args) { return 412; }
if ($cookie_user) { return 412; }
if ($request_method = POST ) { return 412; }
error_page 500 502 503 504 /index_error.html;
error_page 412 = @nocached;
proxy_cache news1;
proxy_cache_key "$request_method|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_valid 200 301 302 304 5s;
proxy_cache_valid any 3s;
proxy_cache_use_stale updating;
}
Подробная информация о списке рассылки nginx-ru