成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx 轉(zhuǎn)發(fā)時(shí)的一個(gè)坑,運(yùn)維居然讓我背鍋!

運(yùn)維 服務(wù)器運(yùn)維
最近遇到一個(gè) Nginx 轉(zhuǎn)發(fā)的坑,一個(gè)請(qǐng)求轉(zhuǎn)發(fā)到 Tomcat 時(shí)發(fā)現(xiàn)有幾個(gè) http header 始終獲取不到,導(dǎo)致線上出現(xiàn) bug,運(yùn)維說(shuō)不是他的問(wèn)題,這個(gè)鍋我背了。

[[356605]]

最近遇到一個(gè) Nginx 轉(zhuǎn)發(fā)的坑,一個(gè)請(qǐng)求轉(zhuǎn)發(fā)到 Tomcat 時(shí)發(fā)現(xiàn)有幾個(gè) http header 始終獲取不到,導(dǎo)致線上出現(xiàn) bug,運(yùn)維說(shuō)不是他的問(wèn)題,這個(gè)鍋我背了。

新增的幾個(gè) header 是這樣的:

  • accept_sign
  • accept_token
  • ...

反復(fù)檢查代碼,確定這些 header 是傳了的,而且本地測(cè)試單獨(dú)在 tomcat 中是可以接受到這些參數(shù)的,所以 tomcat 和命名本身是沒(méi)問(wèn)題的,初步斷定是 Nginx 的問(wèn)題。

經(jīng)過(guò)一翻搜索,終于找到了一個(gè) Nginx 的配置參數(shù):underscores_in_headers,這個(gè)參數(shù)默認(rèn)值為:off,即默認(rèn)忽略帶下劃線的 header。

解決方案:

1、在 http 或者 server 配置中把 underscores_in_headers 配置參數(shù)開(kāi)關(guān)打開(kāi):

  1. server { 
  2.   ... 
  3.   underscores_in_headers on
  4.   ... 

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

2、使用破折號(hào)(-)代替下劃線(_),或者統(tǒng)一規(guī)范直接不要使用下劃線;

我們來(lái)看下一般的 http header 長(zhǎng)什么樣的:

一般所見(jiàn)的 headers 確實(shí)也都是中杠線,沒(méi)有下劃線。

Nginx 為什么默認(rèn)忽略帶下劃線 header?

我找到了 Nginx 的官方說(shuō)明:

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/?highlight=underscores#missing-disappearing-http-headers

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

根據(jù)官方說(shuō)明,這樣做是為了避免把 headers 映射為 CGI 變量時(shí)出現(xiàn)歧義,因?yàn)槠普厶?hào)和下劃線都會(huì)被映射為下劃線,所以兩者不好區(qū)分……

好吧,終于弄清楚了,這個(gè)問(wèn)題也太變態(tài)了,這應(yīng)該是 Nginx 設(shè)計(jì)時(shí)的一個(gè)缺陷吧,這個(gè)坑我替你們踩了!

所以,推薦大家使用第二種方案吧,統(tǒng)一規(guī)范 headers 不要使用下劃線,使用 Nginx 默認(rèn)的配置即可,這樣可以盡量避免環(huán)境上的差異,以免后續(xù)帶來(lái)問(wèn)題。

本文轉(zhuǎn)載自微信公眾號(hào)「Java技術(shù)棧」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java技術(shù)棧公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)棧
相關(guān)推薦

2019-08-27 08:55:05

2019-09-16 17:08:12

運(yùn)維AIOpsIT運(yùn)營(yíng)

2018-10-19 16:35:20

運(yùn)維

2017-09-25 10:52:27

2019-07-10 06:08:33

IT運(yùn)維網(wǎng)絡(luò)故障故障排除

2018-03-23 09:43:09

2018-05-08 09:49:15

數(shù)據(jù)庫(kù)運(yùn)維優(yōu)化

2018-05-02 14:30:33

數(shù)據(jù)庫(kù)運(yùn)維優(yōu)化故障

2018-11-13 12:13:56

運(yùn)維災(zāi)備硬盤(pán)

2023-06-06 11:47:36

運(yùn)維物力人力

2025-03-28 09:22:33

2019-12-10 10:28:47

運(yùn)維架構(gòu)技術(shù)

2011-01-10 14:24:35

CIO快樂(lè)運(yùn)維

2017-03-27 17:49:40

戴爾服務(wù)器

2022-04-06 10:36:24

技術(shù)管理

2024-11-11 17:24:09

2019-12-03 13:57:38

CIO背鍋IT

2018-06-29 10:36:29

阿里云互聯(lián)網(wǎng)故障

2019-02-14 13:30:54

內(nèi)存泄露運(yùn)維

2017-12-03 12:37:00

運(yùn)維wot智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久国内| 五月激情综合网 | 精品久久国产 | 午夜影视大全 | 91精品国产92 | 亚洲精品乱码久久久久久久久久 | 日本欧美大片 | 国产精品视频网 | 日韩爱爱网 | 午夜爱爱网| 最近最新中文字幕 | 欧美一级欧美三级在线观看 | 亚洲97 | 国产网站在线免费观看 | 久久久精品网站 | 免费久久久久久 | 亚洲网一区 | 国产一区久久精品 | 日本免费视频 | 91高清在线| 精品国产一区二区国模嫣然 | 男女一区二区三区 | 在线观看国产视频 | 午夜成人免费视频 | 四虎影院新网址 | 一区二区在线看 | 91精品久久 | 黄色一级片视频 | 久久九九色 | 欧美日韩免费在线 | 国产精品久久久久久久久久久久 | 美女黄网 | 国产成人综合在线 | 日本a视频 | 日本一区二区三区在线观看 | 亚洲国产成人精品女人久久久 | 日本免费一区二区三区视频 | 国产区在线免费观看 | 天天爱av | 久久这里只有精品首页 | 欧美理伦片在线播放 |