自定义 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 @   不是豆豆  阅读(296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2021-10-12 在 npm run build 时遇到报错 [BABEL] No "exports" main defined in
2021-10-12 记录一个微软补丁下载站
2020-10-12 sqlserver 通过判断执行的一些语句记录
2020-10-12 .net core 在 linux 系统下执行 sql server 查询,高并发负载时,可能会出现请求超时的异常(Execution Timeout Expired.)
友情链接:迷途


点击右上角即可分享
微信分享提示