如何禁用cloudflare自定义错误页面,包括错误504(网关超时),而智能错误已被禁用?

时间:2015-06-25 13:01:24

标签: cloudflare custom-error-pages

我的网站使用cloudflare.com的免费计划作为反向代理。

我有一个脚本超过60秒执行,服务器扔掉了504网关超时,但我没有得到我的网页服务器页面,而是我通过cloudflare设置了自定义页面,

我已经进行了双重检查,我在云台中的智能错误应用程序已关闭,那么为什么cloudflare还在提供自定义页面呢?

如何关闭cloudflare的所有自定义页面并仅用作反向代理。

所以我的问题是如何关闭cloudflare中的所有自定义错误页面?

我在cent os 7. 64位上使用nginx最新服务器。 用php-fpm最新。

更新:

这就是我得到的,当我发出504错误时。

Error 504 Ray ID: 1fb6a3feef7c17c8 • 2015-06-24 07:16:17 UTC
Gateway time-out
You
Browser
Working
Singapore
CloudFlare
Working
mydomain.com
Host
Error
What happened?

The web server reported a gateway time-out error.
What can I do?

Please try again in a few minutes.

CloudFlare Ray ID: 1fb6a3feef7c17c8 • Your IP: myip • Performance & security by CloudFlare

更新:根据 damoncloudflare 的建议,我想添加更多详情。

它是一个专用服务器,具有linux cent操作系统,64位,最新nginx,php-fpm,

在nginx conf中我已经指定了如何通过

处理504错误
error_page  500 502 503 504             /50x.html;

如何复制它。

<?php
http_response_code(504);
?>

<?php
sleep(61);
echo 'i am done sleeping';
?>
  • 其中61大于max_execution_time,即60

更多细节,正如为什么最初发生这种情况。

我正在下载大文件,下载时间超过60秒,这是在php.ini文件中设置的max_execution_time。

所以我收到了cloudflare错误。, 我想补充说我的服务器没有问题。

我还有一个查询,如果我从免费升级到专业版,我是否能够禁用cloudlfare 504错误并显示我的网络服务器自定义页面?

更新2

我想,现在我明白了这个问题。

错误504 网关超时

当服务器无法访问时触发

,以及cloudflare显示其页面的位置, 显然,如果服务器无法访问,则服务器无法显示504页。

感谢您的回复。

2 个答案:

答案 0 :(得分:2)

我刚刚花了2个小时!这不是Cloudflare第一次给我带来毫无意义的痛苦。我将这个答案发布给可能会遇到此问题的其他人。

Cloudflare希望让您采用高级计划来自定义某些错误页面。在他们的网站上(域名>“自定义页面”标签):

  

500类错误[...]升级到专业版[...]一旦发布自定义页面,Cloudflare将使用您的自定义页面,而不是将502、504和502的标准500类错误页面提供给您的访问者52x错误。

即使您的NGINX设置正确地为您的50x错误页面提供服务,Cloudflare也会看到50x响应代码与错误页面一起发送回去,并用错误页面覆盖您的页面。

存在解决方法。来自NGINX documentation on the error_page directive

  

此外,可以使用“ = response”语法将响应代码更改为另一个,例如:   error_page 404 =200 /empty.gif;

基本上,我们捕获了50x,但没有将50x响应代码和错误页面一起返回,而是将响应代码更改为Cloudflare不会覆盖其页面的代码。将错误消息(具体而言)“降级”为500错误是一个好主意。 This conveys less information but it still fits the 50x class error

error_page  500 503  /50x.html;
error_page  502 504  =500  /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    internal;
}

我应该添加-504并不意味着未达到NGINX。这意味着,在反向代理上下文中,NGINX成功地传递了请求,但是上游服务(FastCGI /应用服务器,如Puma)花费了很长时间才能响应。

答案 1 :(得分:0)

A 504 or 502 Gateway error is actually indicative of an issue with your back end server & I would recommend contacting your hosting provider/checking your server logs. "So my question is how can i turn off all the custom error pages from cloudflare ?" Customers on a paid plan (Pro or above) can customize error pages. "I have double checked and my Smart-errors application in cloudflare is turned OFF , so why cloudflare is still giving their custom made page ?" SmartErrors is an entirely different feature. It is designed to only trigger when we get a 404 on a URL on your site.