如何将来自 nginx X-Accel-Redirect 的标头传递回浏览器?

Jas*_*hen 7 nginx redirect

我正在使用 nginx X-Accel-Redirect 功能,其中代理后端 (A) 可以“内部重定向” nginx 以重新处理新的 URI (B),就好像那是客户端浏览器最初提供的那个一样。

它在发出请求 B(也被代理)并将 B 的结果标头返回给客户端浏览器方面效果很好。到现在为止还挺好。

但我也有一些来自 A 的标题,我也想传递一下。换句话说,将来自 A 的少量标头与来自 B 的结果合并。

我怎样才能做到这一点?我试过了

add_header  X-My-Header  $http_x_my_header;
Run Code Online (Sandbox Code Playgroud)

但是那个$http_x_my_header变量是空的,大概是因为原始请求没有它。我也试过,$upstream_x_my_header但那也是空的。我试过这样的事情,proxy_pass_header X-My-Header;但没有。

Saš*_*ašo 0

根据proxy_set_header的 nginx 手册:

如果值为空字符串,则标头将不会发送到上游。

尝试使用proxy_set_header X-My-Header "OK"或者您想要用作值的变量。这应该将其传递给代理和用户。