Welcome! Log In Create A New Profile

Advanced

Re[2]: Не передается response header при исползовании X-Accel-Redirect

Никита
June 14, 2017 10:54AM
Вот так не работает. 

location / {
ssi off;
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/app/beta1/socket; ### вот этот бекенд создает этот хедер и отдает в ответ. 
uwsgi_param HTTP_X_ORIGINAL_URL $request_uri;
uwsgi_connect_timeout 300;
uwsgi_pass_header HTTP_X_FLAVOUR; ## пробовали подобное в разных вариациях
uwsgi_pass_header UPSTREAM_HTTP_X_FLAVOUR; ## пробовали подобное в разных вариациях
set $flavour $upstream_http_x_flavour; ## Расчитываем вот в этом месте завернуть хедер из ответа в переменную $flavour но судя по логу $upstream_http_X_Flavour пуст при том что в дебаг логе видно что бекенд его возвращает. 
}
location ~ ^/_internal/redirect-mobile-website/(.*)$ {
proxy_set_header Host $host;
proxy_set_header X-Subdomain $x_subdomain;
proxy_pass_header X-Flavour;
proxy_set_header X-Flavour $flavour; ### А вот тут передать ее в подзапрос. 
proxy_pass http://consul-frontend-mobile-website--beta1/$1$is_args$args;
}


>Среда, 14 июня 2017, 16:24 +03:00 от Maxim Dounin <mdounin@mdounin.ru>:
>
>Hello!
>
>On Wed, Jun 14, 2017 at 03:17:47PM +0300, Никита wrote:
>
>>
>> Добрый день !
>>
>> Проблема: 
>> Не передаются некоторые response хедеры которые отдает uwsgi в ответе при  использовании X-Accel-Redirect
>>
>> location / {
>> include uwsgi_params;
>> uwsgi_pass unix:/var/run/uwsgi/app/django/socket;
>> uwsgi_param HTTP_X_ORIGINAL_URL $request_uri;
>> }
>> location ~ ^/_internal/redirect-location/(.*)$ {
>> internal;
>> proxy_set_header Host $host;
>> proxy_set_header X-Subdomain $http_x_subdomain;
>> proxy_pass http://consul-frontend-mobile-website/$1$is_args$args;
>> }
>>
>> Вот дебаг лог
>>
>> https://gist.github.com/anonymous/e18aa7ebb5e717fada9a45affc9623f6
>>
>>
>> Искомый хедер который не передается - X-Flavour
>
>В такой конфигурации и не должен. После перенаправления на бекенд
>передаются заголовки исходного запроса пользователя, аналогично
>тому, что происходит просто при обычном проксировании.
>
>> Пробовали:
>>
>> location ~ ^/_internal/redirect-location/(.*)$ {
>> internal;
>> proxy_set_header X-Flavour $upstream_http_x_flavour ;
>> proxy_set_header Host $host;
>> proxy_set_header X-Subdomain $http_x_subdomain;
>> proxy_pass http://consul-frontend-mobile-website/$1$is_args$args;
>> }
>>
>> Куда еще копнуть ?
>
>Переменные $upstream_* очищаются при начале работы с новым
>upsteam'ом, так что в момент формирования заголовков нового
>запроса переменная $upstream_http_x_flavour будет пустой.
>
>Если нужно использовать значение, полученное от бекенда в рамках
>предыдущего обращения, можно сохранить его в промеждуточную
>переменную с помощью директивы set, как-то так:
>
>    set $foo $upstream_http_x_flavour;
>    proxy_pass http://...;
>    proxy_set_header X-Flavour $upstream_http_x_flavour;
>    ...
>
>--
>Maxim Dounin
>http://nginx.org/
>_______________________________________________
>nginx-ru mailing list
>nginx-ru@nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru

--
Никита Маслянников
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Не передается response header при исползовании X-Accel-Redirect

Никита June 14, 2017 08:18AM

Re: Не передается response header при исползовании X-Accel-Redirect

Maxim Dounin June 14, 2017 09:26AM

Re[2]: Не передается response header при исползовании X-Accel-Redirect

Никита June 14, 2017 10:54AM

Re: Не передается response header при исползовании X-Accel-Redirect

Maxim Dounin June 14, 2017 11:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 322
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready