是否有可能增加CloudFlare超时?

时间:2016-07-22 22:35:23

标签: timeout cloudflare connection-timeout

是否有可能增加CloudFlare的超时时间?如果是,怎么样?

我的代码需要一段时间才能执行,我不打算在接下来的日子里对其进行Ajax化。

enter image description here

4 个答案:

答案 0 :(得分:23)

不,CloudFlare只提供那种customisation on Enterprise plans

  • 如果15秒后无法建立HTTP握手,CloudFlare将超时。
  • CloudFlare还会等待100秒,以便您的服务器发出HTTP响应,然后才能看到524 timeout error
  • 除此之外,原始网络服务器上可能会有超时。

522 on CloudFlare with SYN/ACK 522 on CloudFlare with ACK timeout

听起来你需要Inter-Process Communication。 HTTP不应该被用作执行阻塞任务而不发送响应的机制,而是应该将这些类型的活动抽象到服务器上的非HTTP服务。通过使用RabbitMQ(或任何其他MQ),您可以将消息从服​​务器的HTTP元素传递到Web服务器上的处理服务。

Pub/Sub IPC

答案 1 :(得分:8)

我与Cloudflare就同一问题进行了沟通,并且还得到了RabbitMQ的技术支持。

RabbitMQ建议使用依赖Web套接字的Web Stomp。然而Cloudflare建议......

  

Websockets将通过Cloudflare创建持久连接   这样没有超时,但解决这个问题的最佳方法是   只是在后台处理请求并异步响应,并提供“正在加载...”页面或类似,而不是让用户等待100秒。这也将为用户提供更好的用户体验

更新:

为了完整起见,我还会在此记录 我还问过CloudFlare关于通过子域运行报告并“灰化”它,他们回复如下:

  

我建议验证为什么需要超过100秒的时间   报告。在子域上禁用Cloudflare,允许攻击者   知道你的起源IP和攻击者将直接攻击   绕过Cloudflare。

进一步更新

我终于通过使用线程运行报告并使用AJAX“轮询”报告是否已创建来解决此问题。见Bypassing CloudFlare's time-out of 100 seconds

答案 2 :(得分:1)

我知道不能将其视为解决方案,但是有两种方法可以避免这种情况。 1)由于此超时通常与长时间生成某些东西有关,因此可以通过crontab进行此类工作,或者如果您有权访问SSH,则可以直接运行PHP命令来执行。在这种情况下,连接不会通过Cloudflare提供服务,因此只要您的配置允许其运行,连接就会一直保持下去。在Google上检查如何从命令行运行脚本,或者如何使用/ usr / bin / php /direct/path/to/file.php

在crontab中确定脚本

2)您可以创建未添加到cloudlflare的子域,然后将脚本移至该域,然后直接通过URL,Ajax调用或任何其他方式运行它们。

在Cloudflare社区论坛上有一个很好的答案:

如果您需要脚本运行超过100秒左右而又不将任何数据返回到浏览器,则无法通过Cloudflare运行这些脚本。有两个选项:通过灰白云的子域运行脚本或更改脚本,以便启动长时间运行的后台进程并快速返回一个状态,浏览器可以轮询该状态,直到后台进程完成为止。点可以返回完整的响应。这是大多数人执行这种操作的方式,因为长时间保持HTTP连接打开不可靠,而且也很麻烦。

这个关于Stackoverflow的主题在SERP中很普遍,因此我决定为那些认为有用的人写下这个答案。

答案 3 :(得分:0)

Cloudflare 不会在超时时触发 504 错误

  • 504 是由您的服务器触发的超时 - 与 Cloudflare 无关。
  • 524 是 Cloudflare 触发的超时。

见:https://support.cloudflare.com/hc/en-us/articles/115003011431-Troubleshooting-Cloudflare-5XX-errors#502504error

524 错误?有一个解决方法:

正如@mjsa 提到的,Cloudflare 只为企业客户端提供超时设置,这对大多数人来说不是一个选项。

但是,您可以通过将橙色云变成灰色来禁用该特定(子)域的 Cloudflare 代理:

之前:

  • enter image description here

之后:

  • enter image description here
<块引用>

注意:它将禁用该特定(子)域的额外功能,包括 IP 掩码和 SSL 证书。

正如 Cloudflare 在其文档中所述:

<块引用>

如果您经常运行需要超过 100 秒的 HTTP 请求 完成(例如大数据导出),考虑移动那些 长时间运行的进程到未代理的子域 云耀斑。该子域会将橙色云图标切换为 Cloudflare DNS 设置中的灰色。请注意,您不能使用页面 规避错误 524 的规则。