Welcome! Log In Create A New Profile

Advanced

Re: Nginx + X-Accel-Redirect

Maxim Dounin
June 04, 2016 08:38AM
Hello!

On Fri, Jun 03, 2016 at 03:51:00AM -0400, materkov wrote:

> Здравствуйте!
>
> Пытаюсь настроить X-Accel-Redirect.
> Вот такой конфиг:
>
> location /api {
> proxy_pass http://127.0.0.1:8000;
> }
>
> location @tornado {
> internal;

Just a side note: директива "internal" в именованных location'ах
не нужна, иначе как в результате перенаправления в такой location
в любом случае не попасть.

> proxy_set_header X-foo1 $upstream_http_myheader;
> proxy_set_header X-foo2 $upstream_status;
> proxy_pass http://127.0.0.1:8888;
> }
>
> Вот такой код в первом апстриме (Django):
>
> def app_hyper_report(request):
> r = api.Response()
> r['myheader'] = 10
> r['X-Accel-Redirect'] = '@tornado'
> return r
>
> То есть здесь идет переадресация через X-Accel-Redirect на второй апстрим.
> При этом, нужно передать во второй апстрим некоторые параметры. Пытаюсь это
> сделать через headers. Столкнулся с проблемой: почему-то не работает
> передача headers через $upstream_http_myheader (в то время как
> $upstream_status срабатывает нормально).
>
> В чем здесь может быть проблема?

Проблема в том, что в момент выполнения proxy_set_header уже
началась работа новым upstream'ом, и значения переменных
$upstream_http_* и $upstream_status - пустые.

Решается сохранением нужных значений в промежуточные переменные с
помощью set, как-то так:

location @tornado {
set $saved_myheader $upstream_http_myheader;
set $saved_status $upstream_status;
proxy_set_header X-foo1 $saved_myheader;
proxy_set_header X-foo2 $saved_status;
proxy_pass http://127.0.0.1:8888;
}

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Nginx + X-Accel-Redirect

materkov June 03, 2016 03:51AM

Re: Nginx + X-Accel-Redirect

Maxim Dounin June 04, 2016 08:38AM

Re: Nginx + X-Accel-Redirect

materkov June 04, 2016 09:51AM

Re: Nginx + X-Accel-Redirect

Maxim Dounin June 06, 2016 09:26AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 203
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