我是nginx的初学者.我在8080上有一个简单的网络服务器,我希望在这个相当小的环境中传递所有流量.我的代理似乎工作,除了当它到达我的上游服务器时,自定义标头不存在.服务器块在下面.我需要添加什么才能保留我的自定义标题?在这种情况下,自定义标头是在angularjs中设置的,但我不认为它与它有任何关系,因为它可以很好地直接到服务器上的8080. ($httpProvider.defaults.headers.common [‘GH_client’] = client_id();)
server {
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_pass_header X-CSRF-TOKEN;
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-NginX-Proxy true;
}}
谢谢你的帮助.
最佳答案
您的标题包含下划线(_).默认情况下,nginx威胁标头,下划线为无效并删除它们.
您应该启用underscores_in_headers
指令.
否则,请考虑将标题名称更改为不带下划线的标题. GH客户端将完全有效并代理到您的后端服务器.