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

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

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

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

什么是504网关超时错误?

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

Illustration of how HTTP requests and responses work

HTTP请求和响应如何工作

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

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

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

互联网工程任务组(IETF)定义了 504网关超时错误 如:

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

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

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

The HTTP ERROR 504 in Chrome browser

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

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

504 GATEWAY TIMEOUT status code in Chrome DevTools

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’s customized HTTP 504 error page

GitHub的自定义HTTP 504错误页面

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

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

例如,当Google蜘蛛偶然发现一个 503服务不可用 错误,他们会理解这是一个临时性问题,因为它通常用于 启用网站维护模式。因此,他们稍后将尝试再次抓取该页面。

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

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

Viewing the crawl errors in Google Search Console

在Google Search Console中查看抓取错误

Google Search Console 其中一个 最好的SEO工具 监视您的网站的HTTP 5xx错误。

504网关超时错误的原因

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

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

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

如何修复504网关超时错误

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

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

尝试重新加载网页

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

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

Refreshing a webpage in Chrome browser

在Chrome浏览器中刷新网页

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

如果等待并重新加载该站点不能解决504错误问题,则可以检查该站点对所有人还是对您而言都是关闭的。测试站点停机的两个很棒的在线工具是 为所有人或为我而沮丧现在下来了吗?

Testing Kinsta.com on Down for Everyone or Just Me

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

重新启动您的网络设备

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

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

检查您的代理设置

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

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

Changing the ‘Proxy’ settings in Windows 10

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

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

DNS问题

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

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

您可以使用免费工具,例如 whatsmydns.net DNS检查器 要么 域名解析 查看您的DNS是否已遍及全球。

Checking DNS propagation for your domain on whatsmydns.net

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

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

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

ipconfig / flushdns
Flushing the DNS Cache with Command Prompt

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

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

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

须藤killall -HUP mDNSResponder

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

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

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

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

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

您可以尝试的一些可靠的方法是 Google公共DNS, Cloudflare 1.1.1.1, Quad9 DNS思科OpenDNS.

Settings custom DNS servers in Windows 10

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

暂时禁用您站点的CDN

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

但是大多数CDN都不默认启用此功能,因为 复杂以缓存动态资产 在大多数网站上(例如 WordPress管理仪表板).

Setting the ‘Cache Everything’ page rule in Cloudflare

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

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

使用其他任何可用于连接CDN的插件(例如WP Rocket,Breeze, W3总缓存).

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

Disable all plugins via SFTP by renaming the plugins folder name

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

CDN喜欢 云耀斑 要么 苏库里 提供完整代理服务的边缘服务器和源服务器之间有额外的防火墙。因此,在使用它们时,您可能会更频繁地遇到HTTP 5xx错误。他们大多数 缓存源服务器返回的5xx错误,因此很容易对其进行故障排除。

Cloudflare的免费计划易于引发5xx错误。不幸的是,由于它是一项完整的代理服务,因此无法快速禁用它。但是在您为此怪罪Cloudflare之前,请先了解Cloudflare 504网关超时错误的两个变化.

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

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

Cloudflare’s custom Error 504 screen

Cloudflare的自定义错误504屏幕

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

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

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

504 Gateway Timeout error caused by Cloudflare

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

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

最有可能的是,Cloudflare已经意识到了这个问题,并且已经在进行修复。您可以通过检查 Cloudflare系统状态 网页。或者,您可以 与Cloudflare支持联系 以获得更快的分辨率。

Check Cloudflare System Status at cloudflarestatus.com

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

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

您上传到网站的大小 也可能是服务器超时的原因。 Cloudflare限制上传文件的大小 (按HTTP POST请求)免费版和专业版计划中的存储空间仅为100 MB。

Cloudflare’s ‘Maximum Upload Size’ limits for various plans

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

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

如果您将Cloudflare与WordPress结合使用,建议您使用他们的 免费插件从缓存中排除关键URL (例如WordPress管理信息中心)。您可以参考Kinsta在 如何为WordPress配置Cloudflare设置.

建议阅读: 如何为WordPress设置Cloudflare APO.

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

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

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

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

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

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

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

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

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

A 212.5% increase in performance after switching to C2.

切换到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小时。如果您的网站未正确响应,它将通过电子邮件或短信通知您。

Monitor your website with updown.io

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

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

WebGazer website monitoring tool's dashboard

WebGazer网站监视工具的仪表板

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

有关详细说明,请查看Kinsta在 托管WordPress托管的重要性.

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

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

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

MyKinsta Analytics dashboard

MyKinsta Analytics仪表板

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

Viewing ‘Top Client IPs’ in MyKinsta dashboard

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

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

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

The ‘Cache Analysis’ screen in MyKinsta

MyKinsta中的“缓存分析”屏幕

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

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

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

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

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

损坏的WordPress数据库

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

修复损坏的WordPress数据库取决于问题。像插件 WP-DB管理器 使诊断数据库问题和修复问题变得容易。我建议您阅读有关Kinsta的详细演练 修复WordPress数据库问题 开始。

检查您网站的插件和主题

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

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

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

如果您可以访问管理信息中心,则可以转到 外挂程式 屏幕,选择 停用 从批量操作菜单中,选中所有插件,然后点击 应用 按钮。这将禁用所有插件。

Deactivate plugins in WordPress

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

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

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

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

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

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

检查错误日志

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

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

Checking error logs inside MyKinsta dashboard

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

如果您的主机没有日志记录工具,则可以 启用WordPress调试模式 通过将以下代码添加到您的 wp-config.php file:

define('WP_DEBUG',true); define('WP_DEBUG_LOG',true); define('WP_DEBUG_DISPLAY',false);

WP_DEBUG常数 启用或禁用WordPress调试模式。它具有两个可选的伴随常量,可以扩展其功能。的 WP_DEBUG_LOG 常数将所有错误保存到 调试日志 内的文件 / wp-content / 目录。如果看不到此文件,则始终可以创建一个。

WP_DEBUG_DISPLAY 常量控制调试日志是否显示在HTML页面中。将其设置为false将隐藏所有错误,但是您也可以在定义了以后再查看这些错误 WP_DEBUG_LOG 确实如此。

重要: 如果你有 启用WP_DEBUG 在Kinsta环境中,它将所有错误路由到 调试日志 文件而不是 错误日志 在MyKinsta仪表板中。

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

Accessing the WordPress error logs folder via SFTP

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

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

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

  • 阿帕奇:/var/log/apache2/error.log/
  • Nginx:/var/log/nginx/error.log/

您可以参考与日志记录相关的文档 阿帕奇 要么 Nginx的 想要查询更多的信息。

正确配置Apache或Nginx设置

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

对于Apache Web服务器

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

超时600

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

您只能将此指令添加到您的 httpd.conf 文件,不在您的文件中 .htaccess 文件。由于大多数共享托管服务提供商不允许您修改 httpd.conf 文件,您可以尝试增加 LimitRequestBody指令 在你的 .htaccess 文件代替。

然后将以下行添加到您的 php.ini file:

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池配置文件。您可以在 /etc/php7.4/fpm/pool.d/www.conf Nginx服务器中的位置(确切路径可能因 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 file:

proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

进行更改后,请不要忘记重新加载Nginx。

sudo服务nginx重新加载

其他HTTP错误,例如504网关超时

如本文前面所述,还有许多其他HTTP 5xx错误,就像504网关超时错误一样。这是因为它们全都发生在服务器端。这些错误包括:

由于客户端问题导致的其他HTTP错误,例如 找不到404 错误,也与504错误类似。您可以参考Kinsta的详细信息 HTTP状态代码指南和列表 想要查询更多的信息。

概要

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

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

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

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

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