Nginx請(qǐng)求頭丟失的問題解決
1.問題
新增的幾個(gè) header 參數(shù)是這樣的:
- api_key_id
- api_key_value
我配置有2層nginx轉(zhuǎn)發(fā),從機(jī)器A到機(jī)器B再到目標(biāo)服務(wù),遇到一個(gè)接口請(qǐng)求需要在header中傳遞api_key_id和api_key_value這2個(gè)參數(shù),但是在EC2機(jī)器上直接curl目標(biāo)服務(wù)的api url是可以的,運(yùn)行的命令:
curl -k -v -X GET 'https://676eea277d90484b8142-cn-heyuan-acdr-1-vpc.alicloudapi.com/v1/accounts/1248622328516666' --header 'api_key_id: 111923335' --header 'api_key_value: f540033e6cc8429f801dc2734ad261ea'
但是通過從機(jī)器A到機(jī)器B再到目標(biāo)服務(wù)這個(gè)鏈路卻不行,這個(gè)鏈路的命令:
curl -k -v -X GET https://baidu.net/dev/tlpssp/uesrapi/v1/accounts/1248622328517708 -H "api_key_id:111923335" -H "api_key_value:f540033e6cc8429f801dc2734ad261ea"
總是返回401,檢查了配置location都沒有問題,但是目標(biāo)服務(wù)后端打印出來的參數(shù),是沒有api_key_id和api_key_value這2個(gè)參數(shù)的。
猜測(cè):
api_key_id和api_key_value這2個(gè)參數(shù)傳遞過程中丟失或則根本沒傳遞
2.解決
于是各種google發(fā)現(xiàn),是nginx配置的問題,終于找到了一個(gè) Nginx 的配置參數(shù):underscores_in_headers,這個(gè)參數(shù)默認(rèn)值為:off,即默認(rèn)忽略帶下劃線的 header。
最終解決方案:
1、在 http 或者 server 配置中把 underscores_in_headers 配置參數(shù)開關(guān)打開:
server { ... underscores_in_headers on; ... }
增加配置后,然后重啟 Nginx。
2、使用破折號(hào)(-)代替下劃線(_),或者統(tǒng)一規(guī)范直接不要使用下劃線;
一般所見的 headers 確實(shí)也都是中杠線,沒有下劃線。
本文最終選擇的是方案1,也就是增加配置: underscores_in_headers on;
到此這篇關(guān)于Nginx請(qǐng)求頭丟失的問題解決的文章就介紹到這了,更多相關(guān)Nginx請(qǐng)求頭丟失內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx配置客戶端保存cookie的實(shí)現(xiàn)
本文主要介紹了nginx配置客戶端保存cookie的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Nginx配置txt、pdf、doc、xls等文件直接下載的方法
這篇文章主要介紹了Nginx配置txt、pdf、doc、xls等文件直接下載的方法,配置方法很簡(jiǎn)單,本文直接給出配置示例,需要的朋友可以參考下2015-04-04全面了解Nginx中的HTTP協(xié)議相關(guān)模塊配置
HTTP的處理是Nginx服務(wù)器的最重要功能,這里我們就帶大家來全面了解Nginx中的HTTP協(xié)議相關(guān)模塊配置,需要的朋友可以參考下2016-07-07Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解
這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問題,需要的朋友可以參考下2016-01-01Nginx反向代理中出現(xiàn)502錯(cuò)誤的解決步驟
反向代理是一種服務(wù)器代理的方式,它代理了客戶端的請(qǐng)求并將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器,然后將后端服務(wù)器的響應(yīng)返回給客戶端,但經(jīng)常會(huì)遇到502錯(cuò)誤,所以本文給大家介紹了Nginx反向代理中出現(xiàn)502錯(cuò)誤的解決步驟,需要的朋友可以參考下2025-03-03