使用nginx反向代理时未在nodejs中收到自定义标头

时间:2017-09-25 06:30:42

标签: node.js nginx http-headers reverse-proxy nginx-reverse-proxy

我有nodejs和nginx正在运行我在API'api_key'中发送了一个额外的标头,并且它没有收到req.headersreq.get('api_key')中的nodejs我有明显的nginx配置文件

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;
    server_name mysite.com;
    return 301 https://$host$request_uri;
 location / {
    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;
    proxy_pass http://localhost:9102/;
    proxy_set_header Host $http_host;
    proxy_set_header api_key $http_api_key; 
    #proxy_set_header api_key 'Some Value'; works 
    proxy_redirect off;
  }
}

如果设置了proxy_set_header api_key 'some value'它的值,并且标题会在控制台上打印,但api_key会发生变化,这就是我使用$http_api_key的原因所以{{1}从rest客户端发送自定义标头。我尝试了几个像api_key这样的解决方案,但没有帮助。我想收到nodejs中从rest客户端发送的任何自定义标头。

1 个答案:

答案 0 :(得分:2)

默认情况下,nginx不会传递包含下划线的标头。

尝试:

underscores_in_headers on;

有关详细信息,请参阅this document

或者,使用API-KEYX-API-KEY代替API_KEY