转发时的一个坑 运维居然让我背锅! Nginx

  • 电脑网络维修
  • 2024-11-15

最近遇到一个 Nginx 转发的坑,一个恳求转发到 Tomcat 时发现有几个 http header 一直失掉不到,造成线上产生bug,运维说不是他的疑问,这个锅我背了。

新增的几个 header 是这样的:

重复审核代码,确定这些 header 是传了的,而且本地测试独自在 tomcat 中是可以接遭到这些参数的,所以 tomcat和命名自身是没疑问的,初步判定是 Nginx 的疑问。

经过一翻搜查,终于找到了一个 Nginx 的性能参数:underscores_in_headers,这个参数自动值为:off,即自动疏忽带下划线的header。

处置打算:

1、在 http 或许 server 性能中把 underscores_in_headers 性能参数开关关上:

参与性能后,而后重启 Nginx。

2、经常使用破折号(-)替代下划线(_),或许一致规范间接不要经常使用下划线;

咱们来看下普通的 http header 长什么样的:

普通所见的 headers 确实也都是中杠线,没有下划线。

Nginx 为什么自动疏忽带下划线 header?

我找到了 Nginx 的官网说明:

If you do not explicitly set underscores_in_headers on;, NGINX will silentlydrop HTTP headers with underscores (which are perfectly valid according to theHTTP standard). This is done in order to prevent ambiguities when mappingheaders to CGI variables as both dashes and underscores are mapped tounderscores during that process.

依据官网说明,这样做是为了防止把 headers 映射为 CGI 变量时产生歧义,由于破折号和下划线都会被映射为下划线,所以两者不好辨别……

好吧,终于弄清楚了,这个疑问也太变态了,这应该是 Nginx 设计时的一个缺点吧,这个坑我替你们踩了!

所以,介绍大家经常使用第二种打算吧,一致规范 headers 不要经常使用下划线,经常使用 Nginx自动的性能即可,这样可以尽量防止环境上的差异,免得后续带来疑问。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/7142.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号