Проблема с обработчиком 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