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

Custom headers not received in nodejs while using nginx reverse proxy

我有 nodejs 和 nginx 运行 我在 API 'api_key' 中发送了一个额外的 header 但在 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' 的值,它会工作并且 header 会打印在控制台上,但是 api_key 会发生变化,这就是我使用 $http_api_key 的原因所以api_key 自定义 header 中的任何内容都会在从其余客户端发送时收到。我尝试了几个解决方案,例如 proxy_set_header api_key $upstream_http_api_key; 但没有帮助。我想接收从 nodejs 中的其余客户端发送的任何自定义 header。

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

尝试:

underscores_in_headers on;

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

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