自定义 http header 名称中带下划线时,可能会被 nginx 忽略删除

在设计自定义 header 时,会发现如 user_id 这样的 header 无法被后端读取到

想来中间有一层 nginx 搜了一下果然是它的影响,具体情况就不记录了,可以看参考链接。

简单记录是因为下划线可能会导致一些兼容性问题,所以 nginx 默认不允许 header 名称带下划线,但也允许手动开启。

解决方案:

1、在 http 或者 server 配置中把 underscores_in_headers 配置参数开关打开:

server {
  ...
  underscores_in_headers on;
  ...
}

增加配置后,然后重启 Nginx。

2、使用破折号(-)代替下划线(_),或者统一规范直接不要使用下划线,感觉这样比较泛用,因为不一定有机会能够修改 nginx 的配置。

参考:https://zhuanlan.zhihu.com/p/335181814

posted @ 2024-10-12 16:37  不是豆豆  阅读(405)  评论(0)    收藏  举报
友情链接:迷途