nginx - 简单的 nginx 反向代理似乎剥离了一些 header

标签 nginx reverse-proxy

我是 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/

相关文章:

html - 停止和运行Docker容器不会更新

nginx 反向代理未检测到负载均衡器丢失

nginx - Beanstalk 中的负载均衡 go 服务器

Django 仅提供索引页面,其他所有页面均为 404

windows - 访问 nginx 后面的 Windows Admin Center

node.js - 使用代理时 Node Express : res. 重定向中断

amazon-web-services - 使用 TCP TLS 到 Nginx 的 AWS 经典负载均衡器

ruby-on-rails-3 - IIS 反向代理不发送完整的响应正文

node.js - 是否可以在不同网络中创建点对点连接?

Nginx - 如果 $request_uri 存在 proxy_pass 一个 url,否则另一个 url