Обработка редиректов внутри

vsadm nginx-forum at nginx.us
Thu Feb 13 12:52:26 UTC 2014


Привет всем,

Есть простой прокси, который обрабатывает редиректы от апстримов внутри
nginx -- так, чтобы они не доходили до браузера. Браузер получает только
последний ответ в цепочке. Конфигурация, в целом, работает, но только один
раз: при первом запросе цепочка отрабатывает как надо, переменная
$upstream_http_location проставляется. При втором запросе, когда 301 берется
из кеша, $upstream_http_location уже пустая. Есть ощущение, что при ответе
301 из кеша внутри не срабатывает модуль апстрима, и, соответственно,
переменные заголовков пустые.

Можно это как-то обойти?

>>      resolver 127.0.0.1;
>>
>>      location / {
>>          ...
>>          proxy_intercept_errors  on;
>>          error_page  302  = @redirect;
>>      }
>>
>>      location @redirect {
>>          set  $redirect  $upstream_http_location;
>>          proxy_pass  $redirect;
>>      }

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247505,247505#msg-247505



Подробная информация о списке рассылки nginx-ru