解決nginx自動過濾帶下劃線的header

最近新增需求,發(fā)現(xiàn)客戶端請求種header傳值給服務(wù)器,竟然沒獲取到。調(diào)試后發(fā)現(xiàn)在本地是可以獲取到前端header傳的參數(shù)的,但是部署到服務(wù)器獲取的就是null(服務(wù)器地址用nginx做了代理)

原因:
查源碼才發(fā)現(xiàn)nginx對header name的字符做了限制,默認 underscores_in_headers 為off,表示如果header name中包含下劃線,則忽略掉,部署后就獲取不到。

解決:

在header里不要用 “_” 下劃線,可以用駝峰命名或者其他的符號(如減號-)代替。nginx默認忽略掉下劃線,可能是規(guī)避參數(shù)和nginx的參數(shù)關(guān)鍵字重復了,比如下面的結(jié)構(gòu)體指針。


image.png

由于參數(shù)名字是我們可控的,這種概率不大。所以還是傾向于在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers on;(默認值是off)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容