繁体   English   中英

Cloudflare HTTP POST 524带有node.js + express的超时

[英]Cloudflare HTTP POST 524 Timeout with 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状态。 指出服务器只是没有正确关闭连接。 通过Message Analyzer查看我的Web服务器的TCP流量,我发现已建立了几个连接并发送了http请求,但我的服务器从未处理过。

所以我们得到一个答案:同时建立的连接数超过可用的Accept()调用数。 因此,TCP堆栈连接并等待,而应用程序将处理它的连接。 根据情况,这种情况永远不会发生,因此客户端只需在30秒超时后断开此连接,而不会得到任何响应。

要解决此问题,您必须增加可能的未完成接受次数 此参数可以命名为“最大同时连接数”或类似名称。 检查您的Web服务器文档\\请求支持人员找到它。

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

此外,您同时执行的请求越多,遇到麻烦的可能性就越大。 您可以尝试为空闲连接设置一些小的Web服务器端超时

PS:一个客户端加载页面后CloudFlare连接数的插图:( http://i.imgur.com/IgwGLCf.png

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM