我是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-client
将完全有效并代理到您的后端服务器.