我的网站使用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';
?>
更多细节,正如为什么最初发生这种情况。
我正在下载大文件,下载时间超过60秒,这是在php.ini文件中设置的max_execution_time。
所以我收到了cloudflare错误。, 我想补充说我的服务器没有问题。
我还有一个查询,如果我从免费升级到专业版,我是否能够禁用cloudlfare 504错误并显示我的网络服务器自定义页面?
更新2
我想,现在我明白了这个问题。
错误504 网关超时
当服务器无法访问时触发,以及cloudflare显示其页面的位置, 显然,如果服务器无法访问,则服务器无法显示504页。
感谢您的回复。
答案 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)