在特定的networking路由上间歇性地发送请求失败〜wtf?

这是一个完整的头部划痕。

我有一个在Passenger上运行的Rails应用程序。

我已经testing了来自几个不同的客户端(通过curl)的服务,发现他们完美的performance。 除了一个特定的客户端(它恰好是客户端),我们观察POST请求的间歇性失败(大约60-70%的时间)。

失败的请求在Apache访问日志中显示为500响应,但是应用程序代码甚至没有被调用。

curl报道这样的事情:

答复是:

Done waiting for 100-continue < HTTP/1.1 100 Continue * Recv failure: Connection was aborted * Closing connection #0 curl: (56) Recv failure: Connection was aborted 

还通过Charles Proxy观察到“网关超时”错误消息。

发送更多数据时,失败率似乎更高。

我真的对这个错误感到困惑,因为它只显示给一个特定的客户端。 我只能猜测networking路由中有什么是造成这个问题的原因,但是没有丝毫的想法来解决这个问题。

有人看过这样的事情吗?

我的猜测是,从客户端的上行链路如此糟糕,以至于数据POST永远不会完成。 由于数据从未发送,应用程序从来没有得到它。

当通过移动(GSM)调制解调器连接时,我有时会遇到问题。 当我连接到一个体面的上行链路时,相同的网站完美地工作。