自定义首部中的NodeJS未接收而使用nginx的反向代理

问题描述:

我的NodeJS和nginx的运行我发送一个额外的标头中的API“API_KEY”中及其在的NodeJS req.headersreq.get('api_key')没有接收我有波纹管配置文件nginx的自定义首部中的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这样无论进来api_key自定义标题,因为它是从其他客户端发送接收。我曾尝试过几种解决方案,如proxy_set_header api_key $upstream_http_api_key;,但没有帮助。我想要接收从nodejs中的其余客户端发送的任何自定义头。

+1

添加'proxy_pass_header api_key;'而不是自己设置。看看是否有帮助 –

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

尝试:

underscores_in_headers on; 

详见this document

或者,使用API-KEYX-API-KEY而不是API_KEY