专业的编程技术博客社区

网站首页 > 博客文章 正文

Nginx过滤了Header中带有下划线的参数

baijin 2025-01-24 10:30:29 博客文章 12 ℃ 0 评论

今天测试接口时发现本地请求正常,部署后死活都不行,在header中带有2个xxx_token和xxx_ip的参数在后端接收不到,在想是不是内容过长导致接收不到,打印了日志发现根本没有,说明根本没有到这一步,那就应该是出现在nginx上,网上搜了一下,确实是nginx为了避免和他自己的参数造成混淆,默认是过滤了header参数的下划线,导致后端接收不到。

其实,在herader命名中使用下划线其实是可以的也是符合 HTTP 标准的。Nginx之所以要默认禁止使用是因为 CGI 历史遗留问题。下划线会被映射为 CGI 系统变量名中的下划线,这样容易引起混淆。

所以要在nginx的配置文件中加入:

   #不过滤header中带有下划线参数
    underscores_in_headers on;

该选项默认是关闭的,所有包含下划线的字段名都会被丢弃,所以一般无特殊需要建议header参数不使用下划线。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表