牛仔放在端口80上的一些数据包
我正在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