Re: проблемы с unescape аргументов в proxy_set_header и proxy_pass
Maxim Dounin
mdounin на mdounin.ru
Вс Окт 17 13:18:39 MSD 2010
Hello!
On Sun, Oct 17, 2010 at 09:31:10AM +0400, ilya at aniskovets.com wrote:
> А, точно! Надо просто попробовать описать upstream в fastcgi_pass. Спасибо!
Не надо. Переменные $upstream_http_* доступны всегда, вне
зависимостит от того описан ли upstream явно или определён неявно
через ..._pass http://hostname.
Но есть нюанс: если вы после X-Accel-Redirect снова уходите в
upstream (fastcgi_pass/proxy_pass/...) - то эти переменные будут
очищены как только начнётся новая работа с upstream'ом. Т.е.
вариант
location /protected/ {
internal;
proxy_pass http://$upstream_http_x_domain;
}
работать не будет. Нужно делать как-то так:
location /protected/ {
internal;
set $domain $upstream_http_x_domain;
proxy_pass http://$domain;
}
В этом случае значение из $upstream_http_x_domain будет сохранено
в другую переменную на стадии rewrite - до того как начнётся
работа с новым upstream'ом. И это значение можно будет
использовать в proxy_pass.
Maxim Dounin
p.s. Please do not top-post. Thank you.
Подробная информация о списке рассылки nginx-ru