简单的nginx反向代理似乎剥离了一些标题

时间:2014-04-22 22:04:32

标签: nginx reverse-proxy

我是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;
}}

感谢您的帮助。

1 个答案:

答案 0 :(得分:12)

您的标题包含下划线(_)。默认情况下,nginx威胁标题,下划线为无效并删除它们。

您应该启用underscores_in_headers指令。

否则,请考虑将标题名称更改为不带下划线的标题。 GH-client将完全有效并代理到您的后端服务器。