我正在elixir插件中運行應用程序,當我在端口80上運行這個api應用程序時,它會丟棄一些數據包並直接從牛仔反應400錯誤請求,甚至不會記錄日誌或其他內容。當我們調試它時,我們發現,在獲取牛仔請求處理程序時,某些標題值被丟棄。牛仔放在端口80上的一些數據包
我們在AWS負載平衡器下運行,當我們在8080上運行時,每件事情都很完美,但是當我們放上80包時就開始下降了,任何人都可以知道解決方法嗎?
我們做了一個第一請求:
「POST/VER2 /用戶/ update_token HTTP/1.1 \ r \ n主機:int.oktalk.com \ r \ nAccept:/ \ r \ nAccept編碼: gzip,deflate \ r \ nAccept-語言:en-GB,en; q = 0.8,en-US; q = 0.6,it; q = 0.4 \ r \ n緩存控制:no-cache \ r \ n內容類型:應用/ JSON \ r \ nOrigin:鉻擴展:// fhbjgbiflinjbdggehcddcbncdddomop \ r \ nPostman令牌:05f463a4-db55-6025-5cc1-f62b83db7c93 \ r \ ntoken:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxNH0.Ind - phmd5saXMjBVjgRKNcCEL60qZoCbHggu-iAqY8 \ r \ n用戶-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_0)AppleWebKit/537.36(KHTML,如Gecko)Chrome/54.0.2840.71 Safari/537.36 \ r \ nX-Forwarded-For:27.34.245.42 \ r \ nX-轉發-Port:80 \ r \ nX-Forwarded-Proto: HTTP \ r \ nContent-長度:103 \ r \ nConnection:保活\ r \ n \ r \ n」表示第一次請求
響應:200 OK
我們再次做出同樣的API調用的第二個請求。我們所看到的是前一個數據包的內容長度是103,並且在下一個數據包中沒有看到前103個字節。我猜系統認爲前103個字節屬於前一個數據包本身。
「e \ r \ nAccept-Language:zh-CN,en; q = 0.8,en-US; q = 0.6,it; q = 0.4 \ r \ n緩存控制:no-cache \ r \ nContent型:應用/ JSON \ r \ nOrigin:鉻擴展:// fhbjgbiflinjbdggehcddcbncdddomop \ r \ nPostman令牌:0e52f1b6-120a-c321-2ba4-d6d20d5eb479 \ r \ ntoken:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxNH0.Ind - phmd5saXMjBVjgRKNcCEL60qZoCbHggu-iAqY8 \ r \ n用戶代理:Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_0)AppleWebKit/537.36(KHTML,如Gecko)Chrome/54.0.2840.71 Safari/537.36 \ r \ nX-Forwarded-For:27.34.245.42 \ r \ nX-Forwarded-Port:80 \ r \ nX-Forwarded-Proto:http \ r \ nContent-Length:103 \ r \ nConnection:keep-alive \ r \ n \ r \ n「
對此的回覆: 400個不好的請求,我看到因爲第一個露點字節丟失。
我們使用Elixir.Plug和牛仔
「當我們調試它時,我們發現,當獲取牛仔請求處理程序」哪些值被丟棄時,某些頭部值被丟棄?你能擴展一下嗎? – Dogbert
@Dogbert請檢查問題,我已編輯 – 0zero0zero