我正在使用 nginx 代理我的 Nodejs 应用程序。在我的应用程序中,我总是从标头询问“client_id”。当我进行本地测试时。一切正常。但是当我通过 Nginx 推送到服务器和代理时。然后client_id就丢失了。我可以看到,当 nginx 做代理时,它删除了我的自定义标头“client_id”。
我想问的是:
谢谢@Peter Lyons,我刚刚找到原因。是的,nginx 默认会将所有标头传递到目标服务器。但是,例外情况是,默认情况下,nginx 会阻止名称中包含下划线“_”的所有标头。
我不知道nginx为什么要这样做。但在这个问题中,这个下划线是我无法获取标头“client_id”的原因。
有2种方法可以解决:
1、更改标头名称以避免下划线,在本题中,将“client_id”更改为“clientId”或“client-id”
2、在nginx.conf中,http部分内,设置underscores_in_headers on;,例如:
http {
....
underscores_in_headers on;
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2594 次 |
| 最近记录: |