我有一个nginx web服务器作为反向代理转发请求到Apache进行额外的处理(我求求你不要问为什么)。 我有一个请求,我试图附加一个自定义标题,我希望nginx将该自定义标题转发给Apache,以便我可以在应用程序中使用它。
我捅过了HttpProxyModule文档,但即使我在正确的位置,它们也不是非常具有描述性(很可能是因为我不是)。
我怎样才能让nginx转发一个X-CUSTOM-REFERRER头文件? 而且,如果可能的话,我希望它能够沿着任何自定义的标题前进。如果后者太多的话,前者就足以满足我目前的需求。
正如你所看到的,我对nginx很新,所以补救版本会有所帮助。
谢谢。
UPDATE
从我现有的configuration相关的片段:
location / { proxy_pass http://preview; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header X-Custom-Referrer $x_custom_referrer; }
来自HttpProxyModule的proxy_set_header指令允许你这样做。 例如:
proxy_pass http://apachehost; proxy_set_header X-Custom-Referrer "somevalue";
ngx_headers_more模块允许你改变和添加http头。
您可以使用上游标头(以$ http_开头)和其他自定义标头。 例如:
add_header X-Upstream-01 $http_x_upstream_01; add_header X-Hdr-01 txt01;
接下来,转到控制台并使用用户标题发出请求:
curl -H "X-Upstream-01: HEADER1" -I http://localhost:11443/
响应包含服务器和X-Upstream-01的X-Hdr-01,由客户端安装:
HTTP/1.1 200 OK Server: nginx/1.8.0 Date: Mon, 30 Nov 2015 23:54:30 GMT Content-Type: text/html;charset=UTF-8 Connection: keep-alive X-Hdr-01: txt01 X-Upstream-01: HEADER1