我有nodejs和nginx正在运行我在API'api_key'中发送了一个额外的标头,并且它没有收到req.headers
和req.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客户端发送的任何自定义标头。
答案 0 :(得分:2)
默认情况下,nginx
不会传递包含下划线的标头。
尝试:
underscores_in_headers on;
有关详细信息,请参阅this document。
或者,使用API-KEY
或X-API-KEY
代替API_KEY
。