我是 nginx 的初学者。我在 8080 上有一个简单的网络服务器,我想在这个相当小的环境中将所有流量传递给它。我的代理似乎可以工作,只是当它到达我的上游服务器时没有自定义 header 。服务器块在下面。我需要添加什么来保留我的自定义标题?在这种情况下,自定义 header 是在 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 将带有下划线的 header 视为无效并删除它们。
您应该启用 underscores_in_headers
指令。
否则,请考虑将 header 名称更改为不带下划线的名称。 GH-client
将完全有效并代理到您的后端服务器。
关于nginx - 简单的 nginx 反向代理似乎剥离了一些 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231063/