背景:接口多次連續請求,客戶端會收到服務端的400的錯誤,但是單次請求是可以成功
因為從服務中看,報錯400 並不是服務暴露出來的,服務沒有日志 但是從nginx中已經看到有錯誤了,肯定發送給了服務,只是這個400,並不是測試的服務返回到,應該是底層返回的
排查問題,最初懷疑客戶端的數據有問題,(因為客戶端要對頭部文件進行加密,擔心加密是不是有變化):
1.客戶端抓包先查看數據,正常的數據流(紅色是客戶端的請求,服務端是藍色的返回)
報錯時的數據流(紅色是客戶端的請求,服務端是藍色的返回)
從上面看出來客戶端在出錯或者是正確返回時,數據的頭部和內容都一致,基本可以排除是客戶端的問題
2.另外一方面開發還是沒有找到解決問題的原因,我在使用tcpdump 抓服務端的日志,看服務端是否有數據變化,從這里的追蹤流也沒有發現什么問題
3 最后還是排查nginx的問題
這是我配置的nginx,我盡量注釋干擾的配置文件
最后注釋掉forwarded-user 這個頭部文件就正常了 ,目前對這個forwarded了解不是很深,自我理解他就是做負載均衡的,請求過大是幫我轉到其他服務了,且頭部文件的內容有不正確,目前沒有深究這個問題,留下當一個思考題