自定义首部中的NodeJS未接收而使用nginx的反向代理
问题描述:
我的NodeJS和nginx的运行我发送一个额外的标头中的API“API_KEY”中及其在的NodeJS req.headers
和req.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中的其余客户端发送的任何自定义头。
答
默认情况下,nginx
不传递包含下划线的标头。
尝试:
underscores_in_headers on;
或者,使用API-KEY
或X-API-KEY
而不是API_KEY
。
添加'proxy_pass_header api_key;'而不是自己设置。看看是否有帮助 –