Server Fault Asked by Jason Cohen on December 27, 2020
I’m using the nginx X-Accel-Redirect feature where a proxied backend (A) can “internally redirect” nginx to reprocess a new URI (B) as if that were the one originally given by the client browser.
It works great in making request B (also proxied)and returning B’s resulting headers back to the client browser. So far so good.
But also I have some headers from A which I’d like to pass along too. In other words, merge a handful of headers from A in with the result from B.
How can I do this? I’ve tried
add_header X-My-Header $http_x_my_header;
But that $http_x_my_header
variable is empty, presumably because the original request didn’t have it. I’ve also tried $upstream_x_my_header
but that’s empty too. I’ve tried things like proxy_pass_header X-My-Header;
but no.
After trial and error, I found the $upstream_http_...
headers to be working when first assigned to a variable;
So with your example that would become something like this;
set $my_header '$upstream_http_x_my_header';
add_header X-My-Header $my_header;
Answered by Koen. on December 27, 2020
According to nginx manual for proxy_set_header:
If value is empty string, then header will not be sent to upstream.
Try using proxy_set_header X-My-Header "OK"
or perhaps a variable you'd like to use as value. That should pass it to the proxy as well as the user.
Answered by Sašo on December 27, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP