如何修复WordPress网站504网关超时错误
错误类型: HTTP错误 错误名称: 504网关超时错误 英文名称: HTTP ERROR 504 错误描述: 在504网关超时错误是最常见的HTTP的一个5XX面临网站所有者和网站访问者的错误。 错误变体: 504 Gateway Timeout504 Gateway Timeout NGINXNGINX 504 Gateway TimeoutGateway Timeout ErrorError 504HTTP Error 504HTTP Error 504 — Gateway TimeoutHTTP 504504 ErrorGateway Timeout (504)This page isn’t working — Domain took too long to respond504 Gateway Time-out — The server didn’t respond in time白屏 更多信息
504网关超时错误是最常见的HTTP错误。一个5XX面对网站所有者和网站访问者的错误。对于许多WordPress博客和电子商务平台来说,知道如何修复这样的服务器错误对于防止来之不易的访问者跳转到竞争对手的网站至关重要。
因为504网关超时错误没有告诉您为什么会发生,所以很难确定是什么原因导致服务器超时。本文将帮助您更多地了解它,知道如何诊断其原因,然后修复它。
在尝试了文章中提到的各种解决方案后,您的网站应该可以立即启动并运行。
什么是504网关超时错误?
如何修复504网关超时错误
其他HTTP错误,如504网关超时
什么是504网关超时错误?
每次在浏览器中访问网站时,浏览器都会向托管该网站的web服务器发送请求。服务器处理请求,并使用请求的资源进行响应。
HTTP请求和响应是如何工作的
服务器包括许多HTTP状态代码中的一个,用于指示对浏览器的响应状态。但并非所有这些HTTP状态代码都是错误。例如,200 OK状态代码意味着服务器成功处理了请求,并且“一切正常”。
5XX类的HTTP状态代码表示服务器有问题,服务器知道这一点,但无法发出客户端的请求。因此,它们也被称为服务器错误5xx状态代码。
形式上,在5xx类别下指定了五个状态代码(500、501、502、503、504)。你还可能遇到很多非官方的代码(506,507,509,520等。).
IETF将504网关超时错误定义为:
54(网关超时)状态代码表示服务器没有从上游服务器收到及时的响应,当充当网关或代理时,它需要访问上游服务器以完成请求。
为了进一步简化,当两个服务器参与处理请求时,会出现此错误。第一台服务器(通常是主服务器)超时,等待第二台服务器(上游服务器)的响应。
54网关超时错误表现为多种形式。以下是它通常出现的一些方式:
Chrome浏览器中的“HTTP错误504”
504网关超时错误类似于502坏网关错误,表示第一台服务器从第二台服务器(上游服务器)收到无效响应。
Chrome DevTools中的“504网关超时”状态代码
04网关超时错误的变体
浏览器将在其中显示任何504网关超时错误,就像任何其他错误一样。由于存在各种操作系统、Web服务器、浏览器和用户代理,它可以以多种方式显示。
以下是您可能会遇到的一些常见的504错误信息变体:
504网关超时
504网关超时NGINX
NGINX 504网关超时
网关超时错误
错误504
HTTP错误504
HTTP错误504 —网关超时
HTTP 504
504错误
网关超时(504)
此页面不起作用—域响应时间太长
504网关超时—服务器没有及时响应
白坪
所有上述错误响应,尽管措辞不同,都指向同一个504网关超时服务器错误。
服务器和网站可以自定义向用户显示504网关超时错误的方式。其中一些可能很酷!这是平息游客失望情绪的绝妙策略。
GitHub的自定义HTTP 504错误页面
54网关超时错误对SEO的影响
所有5xx错误将阻止网页加载,这对用户体验是有害的。所以谷歌这样的搜索引擎会认真对待这些错误。如果错误持续时间较长,甚至可能导致网页从搜索引擎结果中被索引。
例如,当Google spiders意外发现503服务不可用错误时,他们会明白这是一个临时问题,因为它主要用于启用站点维护模式。因此,他们稍后会再次尝试抓取页面。
54网关超时错误不一定是暂时的,因为可能是多种原因造成的。如果您的网站只关闭了几分钟,而蜘蛛程序试图每分钟多次抓取它,它们将试图从缓存中提供页面。他们甚至不会注意到。
然而,如果你的网站宕机超过6小时或更长时间,那么谷歌会将504错误视为一个严重的全网站问题,你需要尽快修复。这样会对你的SEO产生负面影响。
检查Google搜索控制台中的爬网错误
谷歌搜索控制台是监控HTTP 5xx错误的最好的SEO工具之一。
04网关超时错误原因
由于504错误是由服务器之间的超时引起的,所以问题可能不是客户端的设备或互联网连接。这也包括您的设备和连接。
04网关超时错误表示Web服务器等待另一台服务器的响应时间过长,并且“超时”。超时可能有多种原因:另一台服务器工作不正常、过载或关机。
另一个服务器不一定总是外部的(例如CDN、API网关)。它也可以是主Web服务器中的类似服务器的实体(例如反向代理服务器、数据库服务器)。
如何修复504网关超时错误
如果你不知道WordPress站点的确切细节,比如它的服务器配置、托管计划、第三方插件和它吸引的流量,你可能会发现修复504网关的超时错误令人沮丧和不知所措。
由于涉及到很多变量,我建议你先修复客户端的问题,这种情况非常少见,然后再转向修复服务器端的问题。他们通常是504错误的罪魁祸首。
尝试重新加载网页。
当遇到504网关超时错误时,首先可以尝试等待几分钟,然后尝试重新加载页面。
在大多数浏览器中,您可以按F5键盘快捷键来刷新/重新加载网页。要在重新加载之前删除页面的浏览器缓存,可以按CTRL+F5快捷键组合。
在Chrome浏览器中刷新网页
与此同时,您也可以尝试在不同的浏览器中加载该网站来解决问题。由于大多数504错误是由服务器临时过载引起的,使用此解决方案应该可以立即恢复您的网站。
如果等待和重新加载站点不能解决504错误问题,你可以检查该站点是对所有人关闭还是只对你自己关闭。两个有用的测试站点停机时间的在线工具对每个人都停机了,还是只有我,现在停机了吗?
测试wbolt.com在线状态。
重新启动网络设备。
有时,调制解调器或路由器等网络设备的问题可能会导致504网关超时错误。重新启动这些设备可以帮助您解决问题。
虽然您可以按任何顺序关闭所有这些网络设备,但它们重新打开的顺序非常重要。通常,这些设备是按照从互联网服务提供商到您的主要客户端设备的连接顺序“由外向内”打开的。
请检查您的代理设置。
代理位于您的设备和互联网之间。它主要用于通过对网站和web服务器隐藏私人信息(例如设备位置)来增强在线隐私(例如使用VPN)。
虽然代理服务器很少导致504错误,但错误的代理服务器设置有时可能是原因。您可以停用代理服务器,并尝试重新载入网页,看看它是否会修复错误。
更改Windows 10中的“代理”设置
大多数客户端不使用代理服务,所以如果您确定不使用任何代理服务器,可以跳过这一步。但是,您可能在不知情的情况下设置了它。建议你检查一下你的设备和浏览器的代理设置,排除这个原因。
DNS问题
服务器或客户端(或两者)的DNS问题也可能导致504网关超时错误。
服务器DNS问题最可能的原因是FQDN(完全限定的域名)没有解析正确的IP地址,或者DNS服务器没有响应。通常,当你把你的WordPress站点迁移到一个新的服务器或主机时,就会发生这种情况。因此,等待域的DNS记录完全传播是很重要的,这可能需要24小时。
你可以使用whatsmydns.net DNS Checker或DNSMap等免费工具,看看你的DNS是否已经遍布全球。
检查whatsmydns.net上您的域名的DNS传播。
要解决客户端DNS问题,您可以尝试刷新本地DNS缓存。这就像清除浏览器缓存,除了这里,你是从操作系统清除DNS缓存。
如果您使用的是Windows,可以通过打开命令提示符并输入以下命令来刷新DNS缓存:
ipconfig /flushdns
在Windows中使用命令提示符刷新DNS缓存
如果可以,您应该会看到“成功刷新DNS解析器缓存”。
对于最新的macOS版本,您可以打开终端并运行以下命令:
sudo killall -HUP mDNSResponder
该过程完成后,您将不会在macOS中看到任何通知,但您可以通过将命令附加到自定信息来更改通知。
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
如果您使用的是旧版本的macOS,您需要输入的命令将会有所不同,具体取决于您运行的macOS版本。有关更多详细信息,请参考清除DNS缓存过程中的macOS部分。
如果你用的是Linux操作系统,那么过程和macOS很像,因为即使是Linux也是用终端作为命令行界面。由于有许多Linux发行版,您需要运行的确切命令可能因发行版而异。您可以查看DNS缓存指南了解更多信息。
最后,您可以临时更改您的客户端DNS服务器。默认情况下,您的ISP会自动为您分配一个DNS服务器。但是您可以临时将它们更改为公共DNS IP。
您可以尝试一些可靠的DNS服务器,如Google Public DNS、cloud flare 1.1.1.1、Quad9 DNS和Cisco OpenDNS。
在Windows 10中设置自定义DNS服务器
暂时禁用您网站的CDN
有时,问题也可能与您的内容交付网络(CDN)有关。如果网站的源服务器不可访问,大多数CDN将尝试从其缓存中提供完整的网页。
但是大多数cdn默认不启用这个功能,因为在大多数网站上缓存动态资产(例如WordPress管理仪表板)是复杂的。
在Cloudflare中设置“缓存所有内容”页面规则。
这个问题的直接解决方案是暂时禁用你的CDN。例如,如果你使用免费的WordPress插件-CDN启用程序将你的站点资产链接到CDN URL,那么你可以停用插件并测试重新加载你的站点。
使用任何其他可能用于连接CDN的插件也是如此(例如WP Rocket、Breeze、W3 Total Cache)。
如果您无法访问该网站的管理仪表板,您可以通过SFTP重命名其文件夹名称来禁用插件。
通过重命名插件文件夹名称,通过SFTP禁用所有插件。
像Cloudflare或Sucuri这样的cdn提供完整的代理服务,在它们的边缘服务器和您的源服务器之间有一个额外的防火墙。因此,在使用它们时,您可能会更频繁地遇到HTTP 5xx错误。它们中的大多数都会缓存由源服务器返回的5xx错误,因此很容易对它们进行故障排除。
Cloudflare的免费计划容易造成5xx错误。不幸的是,因为它是一个完整的代理服务,没有快速禁用它的方法。但是,在您将此归咎于Cloudflare之前,请了解Cloudflare显示了504网关超时错误的两种变体。
504 cloud flare中的网关超时(变体1)
当您站点的源服务器响应标准HTTP 504响应时,Cloudflare将向您显示自定义504网关超时错误屏幕。
Cloudflare的自定义错误504屏幕
在这里,问题是您的Web服务器,而不是Cloudflare。您可以尝试使用下面提到的其他解决方案来修复它,或者联系您的托管服务提供商的支持人员以获得技术帮助。
Cloudflare的504网关超时(变体2)
如果cloudflare导致504网关超时错误,错误屏幕会提到“Cloudflare”,这是所有当前Cloudflare资产的标准服务器名称。通常,错误屏幕将显示如下:
Cloudflare导致504网关超时错误屏幕
由于Cloudflare本身没有响应,所以在这里你不会看到任何带有Cloudflare品牌的错误屏幕。
最有可能的是,Cloudflare已经意识到了这个问题,并正在努力解决它。您可以通过查看Cloudflare系统状态网页来确认这一点。或者,您可以联系Cloudflare支持,以便更快地解决问题。
检查cloudflarestatus.com的Cloudflare系统状态。
由于大量上传,Cloudflare的504网关超时。
上传网站的大小也可能是服务器超时的原因。Cloudflare将免费和专业计划的上传文件大小(每个HTTP POST请求)限制为100MB。
Cloudflare针对各种计划的“最大上传大小”限制
问题可能出在您的主机或Cloudflare上。可以通过使用DNS主机文件绕过Cloudflare,重新尝试上传,找出确切原因。
如果你在WordPress上使用Cloudflare,我建议你使用他们的免费插件,并从缓存中排除关键URL(例如WordPress管理仪表板)。
服务器问题(请咨询您的主机)
服务器问题是504网关超时错误的最常见原因之一。由于大多数WordPress站点是托管在Nginx或Apache web服务器上的,Nginx或Apache正在等待某个东西的响应并超时。
大多数提供共享主机计划的WordPress主机没有这个功能。因此,与您的网站托管在同一服务器上的高流量网站也可能导致您的网站抛出504错误。
服务器过载并不是服务器超时的唯一原因。54错误可能有许多其他原因:
缓慢的服务器基础设施
您用来托管WordPress站点的服务器可能没有足够的资源来处理负载。这就像十年前在PC上玩现代图形密集型视频游戏一样。
服务器刚刚挂机,试图为网站提供服务。这个问题的唯一解决方案是升级到基础设施更好的服务器。
需要更多的PHP工作人员
PHP工作人员用来执行你的WordPress站点的代码。一个月访问量50000的电商网站,比同样流量的简单博客需要更多的资源。如果所有服务器的PHP工作人员都很忙,他们将建立一个队列。
当队列太大时,服务器将忽略旧的请求,这可能导致服务器抛出504网关错误。你可以问你的房东关于增加PHP工作人员的数量。这将允许您的站点同时执行多个请求。
防火墙问题
您的服务器的防火墙可能有一些错误或不正确的配置。也许,它的一些规则会阻止服务器正确地建立连接。要知道防火墙是否是罪魁祸首,可以查看服务器的错误日志。
网络连接问题
代理和Web服务器之间的连接问题可能会导致对HTTP请求的响应延迟。如果您使用负载平衡器,它也可能有网络连接问题。
HTTP超时
当Web服务器和客户端之间的连接保持打开的时间过长时,可能会发生HTTP超时。对于WordPress站点,这通常发生在运行WordPress导入时。解决这个问题的一个方法是切换到更快的互联网连接。
还可以使用支持WP-CLI的工具,直接在服务器上运行脚本,完全绕过HTTP连接。例如,你可以使用wp import WP-CLI命令直接通过命令行界面运行WordPress Importer插件。
重要提示:504网关超时错误类似于503服务不可用错误或502网关错误。但是都不一样。
要自己监控网站的停机时间,可以使用updown.io等工具,它会通过向网站发送HTTP请求来定期检查网站(或任何URL)的状态。您可以将检查频率设置为15秒到1小时。如果您的网站没有正确响应,它会通过电子邮件或短信通知您。
使用updown.io轻松监控您的网站
你将通过updown.io的每个帐户获得大量免费积分,但如果你正在寻找更便宜的替代产品,你可以查看WebGazer或UptimeRobot。这两个工具将帮助你每5分钟免费监控网站的正常运行时间。对于大多数网站所有者来说,这就足够了。
WebGazer网站监控工具的仪表板
监控你的网站会让你知道它关闭的频率。如果您使用共享主机提供商,这尤其有用。大多数托管的WordPress主机会自动为你处理这个问题。所以一直建议和他们一起去。
垃圾邮件、僵尸程序或DDoS攻击
恶意攻击者可以通过发送过多和/或资源密集型请求来使您的Web服务器爬行。如果您的网站被机器人发送垃圾邮件或受到DDoS攻击,它可能会淹没您的服务器,并导致许多真实用户出现504网关超时错误。
你可以检查服务器的流量和分析,看看你是否能在站点流量中找到任何不规则的模式。如果您使用Pagoda Panel管理您的网站,您可以通过监控管理查看相关数据。
宝塔监控管理界面
最后,你可以使用WordPress安全插件,通过发现和阻止令人担忧的流量/IP来增强网站的安全性。你也可以要求你的主机屏蔽某些IP。
根据攻击的长度和规模,这可能是一个永无止境的将IP列入黑名单的过程,因为许多攻击者在被阻止后已经更改了他们的IP和代理地址。
您可以使用专门的安全解决方案,如Cloudflare或Sucuri,来保护您的网站免受DDoS攻击和垃圾邮件机器人的攻击。要了解更多信息,您可以安装Sucuri来阻止DDoS攻击。
损坏的WordPress数据库
有时,504网关超时错误可能是由于数据库损坏,尤其是在WordPress站点。通常,这是由损坏的数据库表或文件引起的。有时候,也可能是因为严重的安全问题,比如你的网站或者数据库被黑了。
损坏的WordPress数据库取决于问题。WP-DBManager之类的插件可以很容易地诊断数据库问题并修复它们。我建议你读一读修复WordPress数据库问题的详细教程。
检查你网站的插件和主题
大多数情况下,第三方插件和主题不会导致504错误。但是,它们可能会导致服务器超时,通常是通过将插件/主题生成的许多未缓存的请求排队。由于这将占用服务器的大量PHP工作人员,因此可能会导致504错误。
这个问题的一个很好的例子是WooCommerce,这是一个为WordPress网站添加电子商务功能的安装插件。
解决这个问题最简单的方法是停用所有插件。记住,如果你只是停用插件,你不会丢失任何数据。
如果您有权访问管理控制面板,可以转到插件,从批处理操作菜单中选择停用,选中所有插件,然后单击应用按钮。这将禁用您的所有插件。
通过WP管理仪表板停用所有WordPress插件
如果你不能访问你的管理员后台,你可以使用之前描述的方法通过SFTP禁用插件。只需重命名主插件文件夹名称,即可批量禁用所有插件。
禁用所有插件后,请检查您的网站是否正确加载。如果它工作,你必须激活每个插件,并在启用每个插件后测试网站。
最后,确保你的插件、主题和WordPress核心是最新的。此外,确保您的服务器运行的是推荐的PHP版本。
如果你认为这太多了,你可以随时向你的服务器提供商寻求帮助。
在最坏的情况下,比如插件/主题中的低效查询或错误码,可以雇佣WordPress开发者来解决问题。
检查错误日志
在WordPress网站上排除和调试504错误时,查看错误日志是非常有用的。这可以帮助您快速缩小网站上的问题范围,尤其是如果问题是由网站上的高要求插件引起的。
你可以通过在wp-config.php文件中添加以下代码来启用WordPress调试模式:
define( ‘WP_DEBUG’, true );define( ‘WP_DEBUG_LOG’, true );define( ‘WP_DEBUG_DISPLAY’, false );
WP_DEBUG保持启用或禁用WordPress的调试模式。它有两个可选的伴随常数,可以扩展它的功能。WP_DEBUG_LOG常量表示所有错误都保存在/wp-content/目录下的debug.log文件中。如果看不到此文件,您可以创建一个。
WP_DEBUG_DISPLAY常量控制调试日志是否显示在HTML页面上。将此设置为false将隐藏所有错误,但是您可以稍后检查这些错误,因为您还将WP_DEBUG_LOG定义为true。
你也可以通过SFTP下载原始的WordPress错误日志文件。通常,您可以在服务器根目录下名为“logs”的文件夹中找到错误日志。
通过SFTP访问WordPress错误日志文件夹
最后,您可以检查服务器日志文件。根据你用来托管WordPress站点的服务器,它们通常位于以下位置:
Apache:/var/log/Apache 2/error . log/
nginx:/var/log/nginx/error . log/
有关更多信息,请参考Apache或Nginx的日志相关文档。
正确配置Apache或Nginx设置
您可以编辑服务器配置文件来增加特定指令的资源限制。这可以帮助您解决504网关超时错误。
对于Apache web服务器
首先,将以下代码添加到httpd.conf中:
TimeOut 600
此设置定义了在将特定请求标记为网络超时问题之前,服务器等待该请求的时间。它的默认值是60秒(Apache版)。
您只能在httpd.conf文件中添加该指令,而不能在。htaccess文件。由于大多数共享主机提供商不允许您修改httpd.conf文件,您可以尝试在您的。请改用htaccess文件。
然后将下面一行添加到php.ini文件中:
max_execution_time 300
PHP的max_execution_time指令的默认值是30秒。添加它将使你的网站的PHP脚本运行更长时间。
对于Nginx网络服务器
如果你在Nginx+FastCGI进程管理器(PHP-FPM)上运行WordPress site或者使用Nginx作为Apache的反向代理,你可以调整服务器设置来帮助防止504网关超时错误。
(1)nginx+fastcgi(PHP-fpm)上的504网关超时错误
首先,您必须编辑PHP-FPM池配置文件。可以在Nginx服务器中的/etc/php 7.4/fpm/pool . d/www . conf位置找到(具体路径可能会因PHP版本不同而有所不同)。或者,您可以在终端中运行以下命令来编辑PHP-FPM池配置文件:
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
接下来,设置以下指令:
request_terminate_timeout = 300
在这之后,您必须编辑您的php.ini文件。可以在/etc/php.ini找到,打开文件,将max_execution_time指令的值添加/更改为300秒。
max_execution_time = 300
最后,将以下代码添加到nginx.conf文件的location块中:
location ~ .php$ {…fastcgi_read_timeout 300;}
重新加载Nginx和PHP-FPM以使修改生效。
sudo service nginx reloadsudo service php7.4-fpm reload
重新加载PHP-FPM的确切代码会因服务器上安装的PHP版本而异。测试你的网站,看看它是否解决了问题。
(2)Nginx代理上的504网关超时错误
如果您使用Nginx作为Apache的反向代理服务器,那么您可以通过在nginx.conf文件中添加以下指令来使它更能容忍服务器超时:
proxy_connect_timeout 600;proxy_send_timeout 600;proxy_read_timeout 600;send_timeout 600;
在做出更改后,不要忘记重新加载Nginx。
sudo service nginx reload
其他HTTP错误,如504网关超时
正如本文前面提到的,许多其他HTTP 5xx错误就像504网关超时错误一样。这是因为它们都发生在服务器端。这些错误包括:
00内部服务器错误
501未执行
02错误网关
03服务不可用错误
由客户端问题导致的其他HTTP错误,如404 Not Found错误,与504错误类似。有关更多信息,您可以参考HTTP状态代码列表。
总结
由于种种原因,你的WordPress网站可能会受到504网关超时错误的影响。在本文中,您了解了如何解决这些问题。通常,这些错误是由服务器端问题引起的。在这种情况下,您可以联系您的主机,快速解决问题。
但是,您还必须理解,这个错误可能是由第三方插件、主题、服务、低效的数据库查询或者其中两种或多种的组合导致的。如果你想充分利用服务器资源(比如PHP worker),建议优化你的站点,提高性能。
如果你仍然发现你的网站超时,那么你可能需要升级你的主机方案或者增加PHP工作人员的数量。我建议您在尝试了本文中描述的所有其他解决方案之后,再考虑这个选项。
声明:
1,本站分享的资源来源于用户上传或网络分享,如有侵权请联系站长。
2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除。
3,如果你也有好的建站资源,可以投稿到本站。
4,本站提供的所有资源不包含技术服务请大家谅解!
5,如有链接无法下载,请联系站长!
6,特别声明:仅供参考学习,不提供技术支持,建议购买正版!如果发布资源侵犯了您的利益请留言告知!
创网站长资源网 » 如何修复WordPress网站504网关超时错误