nginx转发导致请求头header失效问题

线上遇到的请求头失效问题**

请求头中添加了有定义带有下划线"_"的参数

在这里插入图片描述
由于前端请求头中携带的参数带有下划线 然后又通过nginx转发到请求后端接口,nginx是会默认过滤掉所有请求头中带有下划线的header参数,导致后端无法获取这类请求头参数。

解决方案

1、 nginx配置方案
nginx里的 nginx.conf文件中配置http或者server部分添加 添加一处即可(http是全局 server是单个服务的)

http {
underscores_in_headers on;
}
server {
underscores_in_headers on;
}

2、修改请求头header的参数,不要使用带下划线"_“的请求头,统一规范写成中划线”-", 如:app-key、external-token (建议使用这种规范点)

总结:
HTTP 协议中的请求头 (key-value格式) 需要满足一定的格式要求
下划线和中划线可能都会被映射为 CGI 系统变量名中的下划线,所以为了规范经尽能不要使用下划线的请求头作为key

参考nginx官网说明:http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值