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

val*_*lis 4 reverse-proxy nginx http-headers node.js 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;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果设置proxy_set_header api_key 'some value'它的值有效并且标题打印在控制台上但api_key会发生变化,这就是我使用的原因,$http_api_key以便api_key自定义标题中的任何内容在从其余客户端发送时被接收。我已经尝试了几个解决方案,proxy_set_header api_key $upstream_http_api_key;但没有帮助。我想接收从 nodejs 中的休息客户端发送的任何自定义标头。

Ric*_*ith 7

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

尝试:

underscores_in_headers on;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此文档

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