牛仔在端口80上丢弃一些数据包

时间:2016-10-28 11:07:50

标签: http amazon-web-services erlang elixir

我在elixir插件中运行应用程序,当我在端口80上运行此api应用程序时,它会丢弃一些数据包并直接从牛仔回复400错误请求,它甚至没有记录或其他任何东西。当我们调试它时,我们发现,在获取牛仔请求处理程序时会删除一些标头值。

我们在AWS负载均衡器下运行,当我们在8080上同时运行时,每件事情都很完美但是当我们把80个数据包开始丢弃时,任何人都可以知道解决方法吗?

我们提出了第一个要求:

" POST / ver2 / user / update_token HTTP / 1.1 \ r \ nhost:int.oktalk.com \ r \ n接受: / \ r \ n接受 - 编码:gzip,deflate \ r \ nAccept-Language:en-GB,en; q = 0.8,en-US; q = 0.6,it; q = 0.4 \ r \ nCache-Control:no-cache \ r \ nConContent-Type:application / json \ r \ nOrigin:铬扩展:// fhbjgbiflinjbdggehcddcbncdddomop \ r \ nPostman令牌:05f463a4-db55-6025-5cc1-f62b83db7c93 \ 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 \ nConContent-Length:103 \ r \ nConnection:keep-alive \ r \ n \ r \ n"

第一个请求的响应:200 OK

我们再次作为第二个请求进行了相同的API调用。我们看到的是前一个数据包的内容长度是103,并且在下一个数据包中看不到前103个字节。我猜系统认为前103个字节属于前一个数据包本身。

" e \ r \ nAccept-Language:en-GB,en; q = 0.8,en-US; q = 0.6,it; q = 0.4 \ r \ nCache-Control:no-cache \ r \ n \ 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 \ nConContent-Length:103 \ r \ nConnection:keep-alive \ r \ n \ r \ n"

对此的响应:我看到的400个错误请求,因为缺少第一个露点字节。

我们正在使用Elixir.Plug和牛仔

1 个答案:

答案 0 :(得分:0)

对于其他发现此问题的人(像我一样),请确保您不会忽略Plug.Conn函数中任何返回的conn结构。

这句话在this issue中有完整的概述,还有一个gif说明了这是怎么回事。

相关问题