Welcome! Log In Create A New Profile

Advanced

Многоразовое перенаправление за счет error_page

August 23, 2015 04:56PM
Здравствуйте !

Скажите, пожалуйста, можно ли использовать несколько раз 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 игнорируется ?
Subject Author Posted

Многоразовое перенаправление за счет error_page

Vadim Osipov August 23, 2015 04:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 56
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready