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

http://nginx.org/en/docs/http/ngx_http_core_module.html#recursive_error_pages

23 августа 2015 г., 23:56 пользователь Vadim Osipov
<nginx-fo...@nginx.us> написал:
> Здравствуйте !
>
> Скажите, пожалуйста, можно ли использовать несколько раз error_page для
> перемещения по location-ам, если получаемый статус не является желаемым ?
> Вот конфигурация (рабочая, но придуманная "от фонаря" для целей
> тестирования):
>
> location /images {
>     set $memcached_key "$arg_mykey";
>     memcached_pass localhost:11211;
>     error_page 404 502 504 @go_to_server;
> }
>
> location @go_to_server {
>     proxy_pass http://localhost:8080;
>     error_page 400 @go_for_default;
> }
>
> location @go_for_default {
>     set $memcached_key "default_key_$arg_mykey";
>     memcached_pass localhost:11211;
>     error_page 404 502 502 @go_for_default_to_server;
> }
>
> location @go_for_default_to_server {
>     proxy_pass http://localhost:8080/default/images;
>     return 400;
> }
>
> Посылаю запрос на /images, если в memcached нету, то обрабатываю от него
> статус, путем перенаправления запроса на сервер приложений.
> Но вот что мне не удалось, так это обработать статус от сервера приложений
> путем переброски запроса на другой location, чтобы, например как здесь,
> сделать запрос к memcached за дефолтным значением (и опять на сервер
> приложений в последний раз).
>
> Может быть то, что я хочу сделать
> не так делается
> или есть другая возможность за счет другой директивы
> или в принципе такое нельзя сделать в nginx (только 1 раз от memcached ->
> backend и за счет error_page)
> ?
>
> P.S.
> location @go_to_server {
>     proxy_pass http://localhost:8080;
>     error_page 400 @go_for_default;
> }
> самое интересное, что статус на клиент приходит 404. Даже если заменить на
>     error_page 400 = 200;
> Получается, что 2ой раз использование error_page игнорируется ?
>
> Posted at Nginx Forum: 
> http://forum.nginx.org/read.php?21,261196,261196#msg-261196
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
WBR,
Vadim Lazovskiy
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить