通過(guò)Nginx的proxy_set_header設(shè)置請(qǐng)求頭無(wú)效的解決
背景
在基于nacos做服務(wù)發(fā)現(xiàn)時(shí),需要做流量染色,主要是在流量的頭部加上一些標(biāo)記,以便識(shí)別。
這里就利用到了Nginx的proxy_set_header來(lái)設(shè)置頭部。
問(wèn)題
很多場(chǎng)景下,我們需要通過(guò)nginx設(shè)置請(qǐng)求頭,設(shè)置了一些自定義字段
如果帶下劃線(xiàn),比如user_name這種
后端在進(jìn)去獲取頭部信息時(shí),發(fā)現(xiàn)取不到對(duì)應(yīng)的值
原因&解決辦法
nginx源碼:
ngx_http_parse_header_line(ngx_http_request_t *r, ngx_buf_t *b,ngx_uint_t allow_underscores) if (ch == '_') { if (allow_underscores) { hash = ngx_hash(0, ch); r->lowcase_header[0] = ch; i = 1; } else { r->invalid_header = 1; } break; }
關(guān)鍵變量:
allow_underscores
,是否允許下劃線(xiàn)。
原來(lái)nginx對(duì)header name的字符做了限制,默認(rèn) underscores_in_headers 為off,表示如果header name中包含下劃線(xiàn),則忽略掉。
解決辦法:
方法一:header中自定義變量名時(shí)不要用下劃線(xiàn)。
方法二:修改nginx.conf配置文件,加上underscores_in_headers on的配置,參考如下:
http { include mime.types; default_type application/octet-stream; sendfile on; underscores_in_headers on; keepalive_timeout 65; }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx實(shí)現(xiàn)TCP反向代理的示例代碼
本文主要介紹了nginx實(shí)現(xiàn)TCP反向代理的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01權(quán)限問(wèn)題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
這篇文章主要介紹了權(quán)限問(wèn)題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒(méi)有指明一個(gè)用戶(hù),需要的朋友可以參考下2014-08-08Windows系統(tǒng)中Nginx下載安裝部署教程(實(shí)測(cè)有效)
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP代理服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)中Nginx下載安裝部署的相關(guān)資料,需要的朋友可以參考下2024-08-0818個(gè)運(yùn)維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢)
這篇文章主要介紹了18個(gè)運(yùn)維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Nginx解決Http慢攻擊(Slow HTTP Attack)的方法
緩慢的HTTP拒絕服務(wù)攻擊是一種專(zhuān)門(mén)針對(duì)于Web的應(yīng)用層拒絕服務(wù)攻擊,本文給大家介紹了Nginx解決Http慢攻擊(Slow HTTP Attack)的方法,需要的朋友可以參考下2024-02-02在nginx中實(shí)現(xiàn)單位時(shí)間內(nèi)限制訪問(wèn)頻率的教程
這篇文章主要介紹了在nginx中實(shí)現(xiàn)單位時(shí)間內(nèi)限制訪問(wèn)頻率的教程,并非針對(duì)IP而是全局的訪問(wèn)量限制,需要的朋友可以參考下2015-04-04Nginx實(shí)現(xiàn)負(fù)載均衡的配置步驟
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,它以其穩(wěn)定性、豐富的功能集、低系統(tǒng)資源消耗和簡(jiǎn)單的配置而廣受歡迎,在大型網(wǎng)站和分布式系統(tǒng)中,Nginx常被用作負(fù)載均衡器,本文給大家介紹了Nginx負(fù)載均衡的配置步驟,需要的朋友可以參考下2024-06-06nginx proxy_pass反向代理配置中url后加不加/的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于nginx proxy_pass反向代理配置中url后加不加/的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11