使用技巧

如何修复WordPress网站上的504网关超时错误

504网关超时错误是网站所有者和网站访问者面临的最常见的HTTP 5xx错误之一。对于许多WordPress博客和电子商务平台而言,了解如何解决此类服务器错误对于防止其来之不易的访问者跳回竞争网站至关重要。

 

由于504网关超时错误不会告诉您发生原因,因此很难查明是什么原因导致服务器超时。本文将帮助您深入了解它,学习如何诊断其原因,然后修复它。

在尝试了帖子中提到的所有各种解决方案之后,您的网站应该立即启动并运行。

听起来不错?让我们潜入吧!

什么是504网关超时错误?

每次您在浏览器中访问网站时,浏览器都会向托管该网站的Web服务器发送请求。服务器处理请求并以请求的资源响应。

HTTP请求和响应如何工作的图示

HTTP请求和响应如何工作

服务器响应包括许多HTTP状态代码之一,以指示对浏览器的响应状态。但是,并非所有这些HTTP状态代码都是错误。例如,状态码为200 OK表示服务器成功处理了请求,并且“一切都很好”。

HTTP状态代码的5xx类表示服务器出了点问题,服务器知道了此错误,并且无法执行客户端请求。结果,它们也称为服务器错误5xx状态代码。

正式地,在5xx类下指定了五个状态代码(500、501、502、503、504)。您可能还会遇到许多非官方代码(506、507、509、520等)。

Internet工程任务组(IETF)将504网关超时错误定义为:

504(网关超时)状态码表示服务器充当网关或代理时,未从上游服务器收到及时响应以完成请求。

为了进一步简化,当两个服务器都参与处理一个请求,并且第一台服务器(通常是主服务器)超时等待第二台服务器(上游服务器)的响应时,就会发生此错误。

504网关超时错误以各种形式表现出来。通常会显示以下几种方式:

Chrome浏览器中的HTTP错误504

Chrome浏览器中的“ HTTP错误504”

504网关超时错误类似于502错误网关错误,该错误指示第一台服务器从第二台服务器(上游服务器)收到无效响应。

Chrome DevTools中的504 GATEWAY TIMEOUT状态代码

Chrome DevTools中的“ 504 GATEWAY TIMEOUT”状态代码

504网关超时错误的变化

浏览器在其中显示任何504网关超时错误,就像其他任何错误一样。由于存在各种操作系统,Web服务器,浏览器和用户代理,因此它可以多种方式显示。

以下是您可能会遇到的一些常见的504错误消息变体:

  • 504网关超时
  • 504网关超时NGINX
  • NGINX 504网关超时
  • 网关超时错误
  • 错误504
  • HTTP错误504
  • HTTP错误504 —网关超时
  • HTTP 504
  • 504错误
  • 网关超时(504)
  • 此页面无法正常使用-域花了太长时间才能回复
  • 504网关超时-服务器未及时响应
  • 黑屏

尽管措辞不同,但所有上述错误响应均指向相同的504网关超时服务器错误。

Web服务器和网站可以自定义它们向用户显示504网关超时错误的方式。其中一些可以很酷!这是平息访客失望的绝妙策略。

GitHub的自定义HTTP 504错误页面

GitHub的自定义HTTP 504错误页面

SEO对504网关超时错误的影响

所有5xx错误都会阻止网页加载,从而不利于用户体验。因此,像Google这样的搜索引擎会认真对待这些错误。如果错误持续很长时间,甚至可能导致网页从搜索引擎结果中删除索引。

例如,当Google Spider偶然发现503 Service Unavailable错误时,他们将理解这是一个临时性问题,因为它主要用于启用站点维护模式。因此,他们稍后将尝试再次爬网该页面。

504网关超时错误不一定是暂时的,这可能是由于多种原因造成的。如果您的网站仅关闭了几分钟,并且蜘蛛程序每分钟尝试对其进行多次爬网,则他们将尝试从其缓存中提供页面。他们甚至不会注意到它。

但是,如果您的网站宕机了6个小时或更长时间,那么Google会将504错误视为严重的网站范围问题,您需要尽快进行修复。这会对您的SEO产生负面影响。

在Google Search Console中查看抓取错误

在Google Search Console中查看抓取错误

Google Search Console是监视网站HTTP 5xx错误的最佳SEO工具之一。

504网关超时错误的原因

由于504错误是由于服务器之间的超时引起的,因此问题可能与客户端的设备或Internet连接无关。这还包括您的设备和连接。

504网关超时错误表示Web服务器等待另一台服务器的响应时间太长,并且正在“定时”。发生超时的原因可能很多:另一台服务器无法正常运行,过载或已关闭。

另一个服务器不必总是外部服务器(例如CDN,API网关)。它也可以是主Web服务器(例如,反向代理服务器,数据库服务器)内的类似服务器的实体。

如何修复504网关超时错误

在不了解有关WordPress网站的确切详细信息(例如其服务器配置,托管计划,第三方插件以及它吸引的流量)的情况下,您可能会发现修复504网关超时错误令人沮丧和不知所措。

由于涉及许多变量,因此我建议您首先解决客户端问题(这种情况很少见),然后再解决服务器端问题,这些问题通常是504错误的元凶。

尝试重新加载网页

遇到504网关超时错误时,您可以尝试的第一件事是等待几分钟,然后尝试重新加载页面。

您可以按F5键盘快捷键在大多数浏览器中刷新/重新加载网页。要在重新加载之前删除页面的浏览器缓存,可以按CTRL + F5快捷键组合。

在Chrome浏览器中刷新网页

在Chrome浏览器中刷新网页

进行此操作时,您还可以尝试在其他浏览器中加载网站以排除此问题。由于大多数504错误是由于服务器暂时过载造成的,因此使用此解决方案应可使您的网站恢复正常。

如果等待并重新加载该站点不能解决504错误问题,则可以检查该站点对所有人还是对您而言都是关闭的。测试站点停机的两个出色的在线工具是“每个人都停机”或“只是我”,现在是否停机?

为所有人或我自己测试Kinsta.com

为所有人或我自己测试Kinsta.com

重新启动您的网络设备

有时,网络设备(如调制解调器或路由器)出现问题可能会导致504网关超时错误。重新启动这些设备可以帮助您解决问题。

虽然可以按任何顺序关闭所有这些网络设备,但是重新打开它们的顺序很重要。通常,按照从互联网服务提供商到您的主要客户端设备的连接顺序,从“外向内”打开这些设备。

检查您的代理设置

代理服务器位于您的设备和互联网之间。它主要用于通过隐藏网站和Web服务器中的私人信息(例如设备位置)(例如使用VPN)来增强在线隐私。

虽然代理服务器很少会引起504错误,但有时可能是代理服务器设置不正确的原因。您可以禁用代理服务器,然后尝试重新加载网页以查看它是否可以解决该错误。

在Windows 10中更改``代理''设置

在Windows 10中更改“代理”设置

大多数客户端不使用代理服务,因此,如果您确定不使用任何代理服务器,则可以跳过此步骤。但是,您可能甚至在不知道它的情况下进行了设置。建议您检查设备和浏览器的代理设置以排除此原因。

DNS问题

服务器端或客户端(或两者)上的DNS问题也可能导致504网关超时错误。

服务器端DNS问题的最可能原因是FQDN(完全合格的域名)未解析为正确的IP地址。通常,这是在您刚将WordPress网站迁移到新服务器或主机时发生的。因此,重要的是要等待域的DNS记录完全传播,这可能需要长达24小时。

您可以使用whatsmydns.net DNS Checker或DNSMap等免费工具来查看您的DNS是否在全球范围内传播。

在whatsmydns.net上检查域名的DNS传播

在whatsmydns.net上检查域名的DNS传播

为了解决客户端DNS问题,您可以尝试刷新本地DNS缓存。这就像清除浏览器缓存一样,只不过这里是从操作系统中清除DNS缓存。

如果您使用的是Windows,则可以通过打开命令提示符并输入以下指令来刷新DNS缓存:

ipconfig / flushdns
使用命令提示符刷新DNS缓存

在Windows中使用命令提示符刷新DNS缓存

您应该看到“已成功刷新DNS解析器缓存”。消息是否有效。

对于最新的macOS版本,您可以打开终端并运行以下命令:

须藤killall -HUP mDNSResponder

完成此过程后,您将不会在macOS中看到任何通知,但可以通过在命令中附加自定义消息来更改通知。

sudo killall -HUP mDNSResponder; DNS缓存已成功清除

如果您使用的是旧版本的macOS,则需要输入的命令会根据所运行的macOS版本而有所不同。有关更多详细信息,您可以参考Kinsta的深入刷新DNS教程中的macOS部分。

使用WordPress,我们的流量增长了1,187%。
我们将向您展示如何。

加入20,000多个其他人,他们每周都会收到有关WordPress内部技巧的新闻!

现在订阅

成功!感谢您的订阅

您将在一周内收到下一期的Kinsta新闻通讯。

订阅Kinsta新闻通讯

订阅

我同意条款和条件以及隐私政策

如果您使用的是Linux操作系统,则该过程与macOS十分相似,甚至Linux都使用Terminal作为其命令行界面。由于存在许多Linux发行版,因此您需要运行的确切命令可能因发行版而异。您可以查看Kinsta的指南以了解更多信息。

最后,您可以临时更改客户端DNS服务器。默认情况下,您的ISP自动为您分配DNS服务器。但是您可以将它们临时更改为公共DNS IP。

您可以尝试使用的一些可靠的工具包括Google Public DNS,Cloudflare 1.1.1.1,Quad9 DNS和Cisco OpenDNS。

在Windows 10中设置自定义DNS服务器

在Windows 10中设置自定义DNS服务器

暂时禁用您站点的CDN

有时,问题还可能与您的内容交付网络(CDN)有关。如果无法访问站点的原始服务器,则大多数CDN都会尝试从其缓存中提供完整的网页。

但是大多数CDN默认情况下不会启用此功能,因为在大多数站点(例如WordPress管理仪表盘)上缓存动态资产很复杂。

在Cloudflare中设置“缓存所有内容”页面规则

在Cloudflare中设置“缓存所有内容”页面规则

解决此问题的一种直接方法是暂时禁用CDN。例如,如果您使用免费的CDN启动器WordPress插件将您的站点资产链接到CDN URL,则可以停用该插件并测试重新加载站点。

使用其他可用于连接CDN的插件(例如WP Rocket,Breeze,W3 Total Cache)也是如此。

如果您无法访问站点的管理控制台,则可以通过重命名插件的文件夹名称来通过SFTP禁用插件。

重命名插件文件夹名称,通过SFTP禁用所有插件

重命名插件文件夹名称,通过SFTP禁用所有插件

提供完整代理服务的CDN(例如Cloudflare或Sucuri)在其边缘服务器和您的原始服务器之间具有额外的防火墙。因此,在使用它们时,您可能会更频繁地遇到HTTP 5xx错误。它们中的大多数会缓存源服务器返回的5xx错误,因此很容易对其进行故障排除。

Cloudflare的免费计划很容易引发5xx错误。不幸的是,由于它是一项完整的代理服务,因此无法快速禁用它。但是,在为此归咎于Cloudflare之前,请知道Cloudflare显示了504网关超时错误的两种变化。

Cloudflare的504网关超时(版本1)

当站点的源服务器以标准HTTP 504响应进行响应时,Cloudflare将向您显示一个自定义504网关超时错误屏幕。

Cloudflare的自定义错误504屏幕

Cloudflare的自定义错误504屏幕

在这里,问题出在您的Web服务器上,而不是Cloudflare。您可以尝试使用下面提到的其他解决方案对其进行修复,或者与托管提供商的支持人员联系以寻求技术帮助。

Cloudflare的504网关超时(版本2)

如果Cloudflare导致504网关超时错误,错误屏幕将显示“ cloudflare”,这是当前所有Cloudflare资产的标准服务器名称。通常,错误屏幕如下所示:

504网关超时错误由Cloudflare引起

由Cloudflare引起的504网关超时的错误屏幕

由于Cloudflare本身没有响应,因此您在此处看不到任何Cloudflare品牌的错误屏幕。

最有可能的是,Cloudflare已经意识到了这个问题,并且已经在进行修复。您可以通过检查Cloudflare系统状态网页来确认。另外,您可以联系Cloudflare支持以更快地解决问题。

通过cloudflarestatus.com检查Cloudflare系统状态

通过cloudflarestatus.com检查Cloudflare系统状态

大量上传导致Cloudflare的504网关超时

您上传到站点的大小也可能是服务器超时的原因。无论是免费版还是专业版,Cloudflare都会将上传文件的大小(每个HTTP POST请求)限制为100 MB。

Cloudflare各种计划的“最大上传大小”限制

Cloudflare各种计划的“最大上传大小”限制

问题可能出在主机端,也可能出在Cloudflare上。您可以通过在DNS主机文件中绕过Cloudflare并再次尝试上传来找出确切原因。

如果您将Cloudflare与WordPress结合使用,建议您使用其免费插件,并从缓存中排除关键URL(例如WordPress管理仪表盘)。您可以参考Kinsta关于如何为WordPress配置Cloudflare设置的详细信息。

服务器问题(与主机联系)

服务器问题是遇到504网关超时错误的最常见原因之一。由于大多数WordPress网站都托管在Nginx或Apache Web服务器上,因此这意味着Nginx或Apache正在等待某些响应并超时。

许多客户来到Kinsta正是因为他们在其他WordPress主机上面临的这个问题。对话过程如下:

我们每月有大约10万名访问者,观看次数超过20万。目前,我们使用____托管,由于服务器过载,我们经常遇到504个错误。我不喜欢____处理问题的方式,还被告知我们必须尽快执行他们的专用计划,我认为这是没有必要的。

高流量和电子商务站点由于服务器过载而更容易产生504错误,因为它们会生成大量不可缓存的请求。但是,此问题可能会出现在任何网站上,包括简单的博客。许多主机会要求您升级到高层计划以解决此问题,在大多数情况下这是不必要的。

Kinsta为每个站点使用LXD托管主机和经编排的LXC软件容器。因此,每个WordPress网站都位于其自己的隔离容器中,该容器可以访问运行它所需的所有软件(Linux,Nginx,PHP,MySQL)。这些资源是100%私有的,不会与任何其他网站(甚至您的网站)共享。

提供共享托管计划的大多数WordPress主机没有此功能。因此,与您的服务器托管在同一服务器上的高流量站点也可能导致您的站点抛出504错误。

除了隔离容器中的每个站点之外,Kinsta还设计了可轻松处理数千个并发连接的基础结构。Kinsta甚至在本地主机(而不是远程服务器)上托管MySQL数据库。这意味着机器之间没有等待时间,从而可以加快查询速度并减少发生超时的机会。

迁移到Kinsta的许多客户看到总的加载时间大大减少。

切换到C2后,性能提高了212.5%。

切换到C2后,性能提高了212.5%。

服务器过载并不是服务器超时的唯一原因。504错误可能还有其他原因:

缓慢的服务器基础架构

您用来托管WordPress网站的服务器可能没有足够的资源来处理负载。就像在拥有十年历史的PC上玩现代的图形密集型视频游戏一样。

服务器只是挂断尝试服务该网站。解决此问题的唯一方法是升级到具有更好基础结构的服务器。因此,即使Kinsta最基本的WordPress托管计划也可以处理流量中等的静态站点。

需要更多的PHP工作者

PHP工作者用于在WordPress网站上执行代码。一个每月访问量为50,000个访问者的电子商务网站比具有相同流量的简单博客需要更多的资源。如果服务器的所有PHP工作人员都忙,他们将建立一个队列。

当队列太大时,服务器将忽略旧的请求,这可能导致服务器抛出504网关错误。您可以询问您的主机有关增加PHP工作者数量的信息。这将使您的网站可以同时执行多个请求。

防火墙问题

您服务器的防火墙可能有一些错误或配置不正确。也许,它的一些规则阻止服务器正确建立连接。要了解您的防火墙是否是罪魁祸首,可以检查服务器的错误日志。

网络连接问题

代理服务器和Web服务器之间的连接性问题可能会导致响应HTTP请求的延迟。如果使用负载平衡器,则它也可能存在网络连接问题。

HTTP超时

当Web服务器和客户端之间的连接保持打开状态太长时间时,可能会发生HTTP超时。对于WordPress网站,这通常在运行WordPress导入时发生。解决此问题的一种方法是切换到更快的Internet连接。

您还可以使用支持WP-CLI的工具直接在服务器上运行脚本,而完全绕开HTTP连接。例如,您可以使用wp import WP-CLI命令直接通过命令行界面运行WordPress导入程序插件。

重要说明:504网关超时错误看起来与503服务不可用错误或502错误网关错误类似。但是它们都是不同的。如果您在Kinsta遇到504错误,请打开支持凭单以立即解决问题。

为了自己监视站点的停机时间,可以使用诸如updown.io之类的工具。通过向其发送HTTP请求,它将定期检查您网站的状态(或任何URL)。您可以将检查频率设置为15秒到1小时。如果您的网站未正确响应,它将通过电子邮件或短信通知您。

使用updown.io监视您的网站

使用updown.io轻松监视您的网站

每个updown.io帐户都会为您提供大量的免费积分,但是,如果您正在寻找更便宜的替代品,则可以查看WebGazer或UptimeRobot。这两种工具都将帮助您免费每5分钟监控站点的正常运行时间。对于大多数网站所有者来说,这已经足够了。

WebGazer网站监视工具的仪表板

WebGazer网站监视工具的仪表板

监视您的网站将使您了解其被关闭的频率。如果您使用共享主机提供商,这将特别有用。大多数托管WordPress主机会自动为您处理此问题,因此始终建议与它们一起使用。

有关详细说明,请查看Kinsta关于托管WordPress托管的重要性的文章。

垃圾邮件,僵尸程序或DDoS攻击

恶意攻击者可以通过发送过多请求或发送资源密集型请求来使您的Web服务器爬网。如果您的网站遭到僵尸程序的垃圾邮件攻击或遭受DDoS攻击,它可能使您的服务器不堪重负,并为许多真正的用户造成504网关超时错误。

您可以查看服务器流量和分析,以查看是否可以发现站点流量中的任何不规则模式。如果您使用Kinsta托管网站,则可以通过转到MyKinsta Analytics仪表板轻松查看此数据。

MyKinsta Analytics仪表板

MyKinsta Analytics仪表板

通过查看顶级客户端IP来开始调查。它会让您了解谁在生成最大数量的请求,以及从何处生成最大数量的请求。如果您的服务器突然耗尽了巨大的带宽或吸引了大量的流量,那么此报告将非常方便。

在MyKinsta仪表板中查看“顶级客户端IP”

在MyKinsta仪表板中查看“顶级客户端IP”

接下来,您可以签出“缓存分析”报告。在这里,您可以看到有多少个请求绕过或丢失了缓存,或者正在从缓存中得到服务。出于性能和稳定性的原因,您希望缓存尽可能多的请求,但并非总是可以实现该请求。

例如,WooCommerce网站针对诸如购物车和结帐流程之类的功能生成了许多不可缓存的请求。

MyKinsta中的“缓存分析”屏幕

MyKinsta中的“缓存分析”屏幕

最后,您可以使用WordPress安全插件通过发现和阻止令人烦恼的流量/ IP来增强网站的安全性。您也可以要求主机也阻止某些IP。

根据攻击的长度和规模,这可能是将IP列入黑名单的永无止境的过程,因为许多攻击者在被阻止后会更改其IP和代理地址。

遇到停机和WordPress问题吗?Kinsta是一款托管解决方案,设计时考虑了性能和安全性!查看我们的计划

注意:Kinsta不允许其客户安装WordPress安全插件,因为它们会对网站的性能(尤其是其扫描功能)产生巨大影响。由于Kinsta在Google Cloud Platform中使用负载平衡器,因此阻止IP并非总是可以按预期进行。

您可以使用专用的安全解决方案(例如Cloudflare或Sucuri)来保护您的站点免受DDoS攻击和垃圾邮件机器人的攻击。有关更多信息,您可以查看Kinsta关于如何在WordPress网站上安装Cloudflare以及Sucuri如何帮助阻止DDoS攻击的文章。

损坏的WordPress数据库

有时,“ 504网关超时”错误可能是由于数据库损坏引起的,尤其是在WordPress网站中。通常,这是由于数据库表或文件已损坏。有时,它也可能是由严重的安全问题(例如您的网站或数据库被黑客入侵)引起的。

修复损坏的WordPress数据库取决于问题。诸如WP-DBManager之类的插件可轻松诊断数据库问题并修复它们。我建议您阅读Kinsta有关修复WordPress数据库问题的详细演练,以开始使用。

检查您网站的插件和主题

在大多数情况下,第三方插件和主题不会导致504错误。但是它们通常会通过排队插件/主题生成的许多未缓存请求而导致服务器超时的可能性很小。由于这束缚了服务器的许多PHP工人,因此可能导致504错误。

这个问题的一个很好的例子是WooCommerce,这是一个为WordPress网站添加电子商务功能而安装的插件。

解决此问题的最简单方法是停用所有插件。请记住,只要停用插件,您就不会丢失任何数据。

如果可以访问管理仪表板,则可以转到“插件”屏幕,从“批量操作”菜单中选择“停用”,选中所有插件,然后单击“应用”按钮。这将禁用所有插件。

停用WordPress中的插件

通过WP管理控制台停用所有WordPress插件

如果您无法访问管理区域,则可以使用上述方法通过SFTP禁用插件。只需重命名主插件文件夹名称即可批量禁用所有插件。

停用所有插件后,请检查您的网站是否正确加载。如果可行,则必须逐个激活每个插件,并在启用每个插件后测试站点。

最后,请确保您的插件,主题和WordPress核心是最新的。另外,请确保您的服务器正在运行推荐的PHP版本。

如果您觉得这太过压倒性的话,可以随时与您的主人联系以寻求帮助。Kinsta使用New Relic和其他故障排除技术来帮助客户端缩小可能导致错误的插件,查询或脚本的范围。

在最坏的情况下,例如查询效率低下或插件/主题中的错误代码,您可以请WordPress开发人员来解决此问题。

检查错误日志

在对WordPress网站上的504错误进行故障排除和调试时,查看错误日志可能非常有帮助。这可以帮助您快速缩小网站上的问题的范围,特别是如果这是由您网站上要求苛刻的插件引起的。

如果您是Kinsta客户,则可以在MyKinsta仪表板的日志查看器中轻松查看错误。

检查MyKinsta仪表板内的错误日志

检查MyKinsta仪表板内的错误日志

如果您的主机没有日志记录工具,则可以通过将以下代码添加到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。

重要提示:如果在Kinsta环境中启用了WP_DEBUG,它将把所有错误路由到debug.log文件,而不是MyKinsta仪表板中的error.log。

您还可以通过SFTP下载原始的WordPress错误日志文件。通常,您可以在服务器的根目录中的名为“ logs”的文件夹中找到错误日志。

通过SFTP访问WordPress错误日志文件夹

通过SFTP访问WordPress错误日志文件夹

Kinsta用户还可以从MyKinsta仪表板启用WordPress调试模式。为此,请导航至站点>工具> WordPress调试,然后单击启用按钮。这样您就可以查看PHP错误和通知,而不必通过SSH或SFTP启用调试模式。

最后,您可以检查服务器日志文件。通常会在以下位置找到它们,具体取决于您用来托管WordPress网站的服务器:

  • Apache:/var/log/apache2/error.log/
  • Nginx:/var/log/nginx/error.log/

您可以参考Apache或Nginx的日志记录相关文档以获取更多信息。

正确配置Apache或Nginx设置

您可以编辑服务器配置文件以增加特定指令的资源限制。这可以帮助您解决504网关超时错误。

对于Apache Web服务器

首先,将以下代码添加到您的httpd.conf中:

超时600

此设置定义服务器将其标记为网络超时问题之前将等待某些请求的时间。其默认值为60秒(Apache 2.4版本)。

您只能将此指令添加到httpd.conf文件中,而不能添加到.htaccess文件中。由于大多数共享托管提供程序不允许您修改httpd.conf文件,因此您可以尝试在.htaccess文件中尝试增加LimitRequestBody指令的值。

然后将以下行添加到您的php.ini文件中:

max_execution_time 300

PHP的max_execution_time指令的默认值为30秒。增加它可以使您站点的PHP脚本运行更长的时间。

对于Nginx Web服务器

如果您正在Nginx + FastCGI Process Manager(PHP-FPM)上运行WordPress站点,或者将Nginx用作Apache的反向代理,则可以调整服务器设置以帮助防止504网关超时错误。

Nginx + FastCGI(PHP-FPM)上的504网关超时错误

首先,您必须编辑PHP-FPM池配置文件。您可以在Nginx服务器中的/etc/php7.4/fpm/pool.d/www.conf位置找到它(确切的路径可能因PHP版本而异)。或者,您可以在终端中运行以下命令来编辑PHP-FPM池配置文件:

须藤纳米/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文件的位置块中:

位置〜.php $ {

fastcgi_read_timeout 300;
}

重新加载Nginx和PHP-FPM以使更改生效。

sudo服务nginx重新加载
sudo服务php7.4-fpm重新加载

重新加载PHP-FPM的确切代码将根据服务器上安装的PHP版本而有所不同。测试您的网站,看看它是否已解决该问题。

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网关超时错误一样。这是因为它们全都发生在服务器端。这些错误包括:

  • 500内部服务器错误
  • 501未实现错误
  • 502错误的网关错误
  • 503服务不可用错误

由客户端问题引起的其他HTTP错误(例如404 Not Found错误)也类似于504错误。您可以参考Kinsta的详细指南和HTTP状态代码列表以获取更多信息。

概要

由于多种原因,您的WordPress网站可能会受到504网关超时错误的影响。在本文中,您学习了如何对它们全部进行故障排除。通常,这些错误是由于服务器端问题引起的,在这种情况下,您可以与主机联系并快速解决它。

但是,您还必须了解,此错误可能是由于第三方插件,主题,服务,低效的数据库查询或其中的两个或更多个的组合引起的。如果您要最大限度地利用服务器的资源(例如PHP工作者),则建议优化站点的性能。

如果您仍然发现自己的网站正在超时,则很可能是您需要升级托管计划或PHP工作者的数量。我建议您仅在用尽本文中介绍的所有其他解决方案之后才考虑使用此选项。

从简单的静态网站到复杂的电子商务和会员网站,Kinsta的托管计划旨在容纳所有类型的网站。即使您的站点使用的服务器资源超出了托管计划所提供的资源,Kinsta的自动扩展功能也意味着您的站点将始终在线。

我们错过了什么吗?如果您仍然难以修复WordPress网站上的504网关超时错误,请在下面留下评论。

如果您喜欢这篇文章,那么您会喜欢Kinsta的WordPress托管平台。加速您的网站并获得我们经验丰富的WordPress团队的24/7支持。我们基于Google Cloud的基础架构专注于自动扩展,性能和安全性。让我们向您展示Kinsta的与众不同!查看我们的计划