如何修复 WordPress 网站上的 504 网关超时错误
已发表: 2020-10-26504 网关超时错误是网站所有者和网站访问者面临的最常见的 HTTP 5xx错误之一。 对于许多 WordPress 博客和电子商务平台来说,知道如何修复这样的服务器错误对于防止来之不易的访问者跳到竞争对手的网站至关重要。
由于 504 Gateway Timeout 错误不会告诉您它发生的原因,因此很难确定导致服务器超时的原因。 本文将帮助您详细了解它,了解如何诊断其原因,然后进行修复。
在尝试了帖子中提到的所有各种解决方案后,您的网站应该立即启动并运行。
听起来不错? 让我们潜入吧!
喜欢看视频版?
什么是 504 网关超时错误?
每次您在浏览器中访问网站时,浏览器都会向托管该网站的 Web 服务器发送一个请求。 服务器处理请求并使用请求的资源进行响应。

服务器响应包括许多 HTTP 状态代码之一,用于向浏览器指示响应的状态。 但并非所有这些 HTTP 状态代码都是错误。 例如,200 OK 状态码意味着服务器成功处理了请求并且“一切正常”。
5xx类HTTP状态码表示服务器有问题,服务器知道,不能执行客户端请求。 因此,它们也被称为服务器错误 5xx状态代码。
官方在 5xx 类下指定了五个状态码(500、501、502、503、504)。 您也可能会遇到许多非官方代码(506、507、509、520 等)。
互联网工程任务组 (IETF) 将 504 网关超时错误定义为:
504(网关超时)状态代码表示服务器在充当网关或代理时,没有收到来自它需要访问以完成请求的上游服务器的及时响应。
为了进一步简化,当两个服务器参与处理请求时会发生此错误。 第一个服务器(通常是主服务器)超时,等待来自第二个服务器(上游服务器)的响应。
504 网关超时错误以各种形式表现出来。 以下是它通常出现的一些方式:

504 Gateway Timeout 错误与 502 Bad Gateway 错误类似,表示第一台服务器收到第二台服务器(上游服务器)的无效响应。

504 网关超时错误的变种
浏览器会在其中显示任何 504 Gateway Timeout 错误,就像任何其他错误一样。 由于存在各种操作系统、Web 服务器、浏览器和用户代理,它可以以多种方式出现。
以下是您可能会遇到的一些常见的 504 错误消息变体:
- 504网关超时
- 504 网关超时 NGINX
- NGINX 504 网关超时
- 网关超时错误
- 错误 504
- HTTP 错误 504
- HTTP 错误 504 - 网关超时
- HTTP 504
- 504 错误
- 网关超时 (504)
- 此页面无法正常工作 - 域响应时间过长
- 504 Gateway Time-out - 服务器没有及时响应
- 页面请求被取消,因为完成时间过长
- 网站访问者:处理您的请求时出现问题,请在几分钟后重试。
- 站点所有者:网关超时。 您应该访问您的错误日志以获取更多信息。
- 一个空白的白色屏幕
以上所有错误响应,虽然措辞不同,但都指向相同的 504 Gateway Timeout 服务器错误。
Web 服务器和网站可以自定义向用户显示 504 网关超时错误的方式。 其中一些可能很酷! 这是平息游客失望的绝妙策略。

504 网关超时错误对 SEO 的影响
所有 5xx 错误都会阻止网页加载,从而损害用户体验。 因此,像谷歌这样的搜索引擎会认真对待这些错误。 如果错误持续很长时间,甚至可能导致从搜索引擎结果中取消对该网页的索引。
例如,当 Google 蜘蛛偶然发现 503 Service Unavailable 错误时,他们会明白这是一个临时问题,因为它主要用于启用站点维护模式。 因此,他们稍后会再次尝试抓取该页面。
504 网关超时错误不一定是暂时的,因为它可能是由于多种原因造成的。 如果您的站点仅关闭了几分钟,并且蜘蛛试图每分钟多次抓取它,它们将尝试从缓存中提供该页面。 他们甚至不会注意到它。
但是,如果您的网站宕机时间超过 6 小时或更长时间,那么 Google 会将 504 错误视为您需要尽快修复的严重的网站范围问题。 这会对您的 SEO 产生负面影响。

Google Search Console 是监控网站 HTTP 5xx 错误的最佳 SEO 工具之一。
504网关超时错误的原因
由于 504 错误是由于服务器之间的超时造成的,因此问题可能不在于客户端的设备或 Internet 连接。 这还包括您的设备和连接。
504 Gateway Timeout 错误表示 Web 服务器等待另一台服务器响应的时间过长并且“超时”。 此超时可能有多种原因:另一台服务器运行不正常、过载或停机。
其他服务器不必总是在外部(例如 CDN、API 网关)。 它也可以是主 Web 服务器(例如反向代理服务器、数据库服务器)中的类似服务器的实体。
如何修复 504 网关超时错误
在不了解 WordPress 站点的确切详细信息(例如其服务器配置、托管计划、第三方插件及其吸引的流量)的情况下,您可能会发现修复 504 Gateway Timeout 错误令人沮丧和不知所措。
由于涉及到许多变量,我建议您从修复非常罕见的客户端问题开始,然后转向修复服务器端问题。 他们通常是 504 错误的罪魁祸首。
尝试重新加载网页
遇到 504 Gateway Timeout 错误时,您可以尝试的第一件事是等待几分钟并尝试重新加载页面。
在大多数浏览器中,您可以按F5键盘快捷键刷新/重新加载网页。 要在重新加载之前删除页面的浏览器缓存,您可以按CTRL+F5快捷键组合。

当您使用它时,您还可以尝试在其他浏览器中加载该站点以排除该问题。 由于大多数 504 错误是由于服务器暂时超载造成的,因此使用此解决方案应该可以让您的网站立即恢复。
如果等待并重新加载站点并不能解决 504 错误问题,您可以检查站点是对所有人关闭还是仅对您关闭。 用于测试站点停机时间的两个有用的在线工具是 Down for Everyone 或 Just Me 以及它现在就宕机了吗?

重新启动您的网络设备
有时,调制解调器或路由器等网络设备的问题可能会导致 504 网关超时错误。 重新启动这些设备可以帮助您解决问题。
虽然您可以按任何顺序关闭所有这些网络设备,但重新打开它们的顺序很重要。 通常,按照从互联网服务提供商到您的主客户端设备的连接顺序,从“外向内”打开这些设备。
检查您的代理设置
代理服务器位于您的设备和互联网之间。 它主要用于通过向网站和网络服务器(例如使用 VPN)隐藏私人信息(例如设备位置)来增强在线隐私。
虽然代理服务器很少会导致 504 错误,但不正确的代理服务器设置有时可能是原因。 您可以禁用代理服务器并尝试重新加载网页,看看它是否会修复错误。

大多数客户端不使用代理服务,因此如果您确信自己不使用任何代理服务器,则可以跳过此步骤。 但是,您可能在不知情的情况下设置了它。 我建议您检查设备和浏览器的代理设置以排除此原因。
DNS 问题
服务器端或客户端(或两者)上的 DNS 问题也可能导致 504 网关超时错误。
服务器端 DNS 问题的最可能原因是 FQDN(完全限定域名)没有解析正确的 IP 地址或DNS 服务器没有响应。 通常,当您刚刚将 WordPress 站点迁移到新的服务器或主机时,就会发生这种情况。 因此,等待域的 DNS 记录完全传播很重要,这可能需要长达 24 小时。
您可以使用 whatsmydns.net DNS Checker 或 DNSMap 等免费工具来查看您的 DNS 是否已在全球传播。

要修复客户端 DNS 问题,您可以尝试刷新本地 DNS 缓存。 这就像清除浏览器缓存一样,除了这里,您正在从操作系统中刷新 DNS 缓存。
如果您使用的是 Windows,则可以通过打开命令提示符并输入以下指令来刷新 DNS 缓存:
ipconfig /flushdns

您应该会看到“已成功刷新 DNS 解析器缓存”。 如果有效,请留言。
对于最新的 macOS 版本,您可以打开终端并运行以下命令:
sudo killall -HUP mDNSResponder
该过程完成后,您不会在 macOS 中看到任何通知,但您可以通过将命令附加到您的自定义消息来更改它。
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
如果您使用的是较旧的 macOS 版本,则需要输入的命令会根据您运行的 macOS 版本而有所不同。 更多细节可以参考 Kinsta 深度刷新 DNS 教程中的 macOS 部分。
如果您使用的是 Linux 操作系统,那么该过程与 macOS 非常相似,因为即使 Linux 也使用终端作为其命令行界面。 由于有许多 Linux 发行版,您需要运行的确切命令可能因发行版而异。 您可以查看 Kinsta 的指南以获取更多信息。
最后,您可以临时更改客户端 DNS 服务器。 默认情况下,您的 ISP 会自动为您分配 DNS 服务器。 但是您可以暂时将这些更改为公共 DNS IP。
您可以尝试的一些可靠的 DNS 服务器是 Google Public DNS、Cloudflare 1.1.1.1、Quad9 DNS 和 Cisco OpenDNS。

暂时禁用您网站的 CDN
有时,问题也可能出在您的内容交付网络 (CDN) 上。 如果无法访问网站的源服务器,大多数 CDN 将尝试从其缓存中提供整个网页。
但是大多数 CDN 默认不启用此功能,因为在大多数站点(例如 WordPress 管理仪表板)上缓存动态资产很复杂。

解决此问题的一种直接方法是暂时禁用您的 CDN。 例如,如果您使用免费的 CDN Enabler WordPress 插件将您的网站资产链接到 CDN URL,那么您可以停用该插件并测试重新加载您的网站。
使用任何其他可用于连接 CDN 的插件也是如此(例如 WP Rocket、Breeze、W3 Total Cache)。
如果您无法访问您网站的管理仪表板,您可以通过重命名插件的文件夹名称通过 SFTP 禁用该插件。

Cloudflare 或 Sucuri 等提供完整代理服务的 CDN 在其边缘服务器和您的源服务器之间有额外的防火墙。 因此,您在使用它们时可能会更频繁地遇到 HTTP 5xx 错误。 它们中的大多数会缓存原始服务器返回的 5xx 错误,因此很容易对其进行故障排除。
Cloudflare 的免费计划很容易引发 5xx 错误。 不幸的是,由于它是一个完整的代理服务,所以没有快速的方法来禁用它。 但在你责怪 Cloudflare 之前,请知道 Cloudflare 显示了 504 Gateway Timeout 错误的两种变体。
Cloudflare 的 504 网关超时(变体 1)
当您站点的源服务器以标准 HTTP 504 响应响应时,Cloudflare 将向您显示自定义 504 Gateway Timeout 错误屏幕。

在这里,问题在于您的 Web 服务器,而不是 Cloudflare。 您可以尝试使用下面提到的其他解决方案来修复它,或者联系您的托管服务提供商的支持以获得技术帮助。
Cloudflare 的 504 网关超时(变体 2)
如果 Cloudflare 导致 504 Gateway Timeout 错误,错误屏幕将提及“cloudflare”,这是当前所有 Cloudflare 资产的标准服务器名称。 通常,错误屏幕将显示如下:

由于 Cloudflare 本身没有响应,因此您不会在此处看到任何 Cloudflare 品牌的错误屏幕。
Cloudflare 很可能已经意识到了这个问题,并且已经在着手修复。 您可以通过查看 Cloudflare 系统状态网页来确认这一点。 或者,您可以联系 Cloudflare 支持以获得更快的解决方案。

由于大量上传,Cloudflare 出现 504 网关超时
您上传到站点的大小也可能是服务器超时的原因。 Cloudflare 将 Free 和 Pro 计划的上传文件大小(每个 HTTP POST 请求)限制为仅 100 MB。

问题可能出在您的主机端或 Cloudflare。 您可以通过使用 DNS 主机文件绕过 Cloudflare 并再次尝试上传来找出确切原因。
如果您在 WordPress 中使用 Cloudflare,我建议使用他们的免费插件并从缓存中排除关键 URL(例如 WordPress 管理仪表板)。 您可以参考 Kinsta 关于如何为 WordPress 配置 Cloudflare 设置的详细帖子。
建议阅读:如何为 WordPress 设置 Cloudflare APO。
服务器问题(与您的主机核实)
服务器问题是面临 504 网关超时错误的最常见原因之一。 由于大多数 WordPress 站点都托管在 Nginx 或 Apache 网络服务器上,因此 Nginx 或 Apache 正在等待某事的响应并超时。
许多客户来到 Kinsta 正是因为他们在其他 WordPress 主机上面临的这个问题。 对话是这样的:
我们每月有大约 10 万访问者,浏览量超过 20 万。 目前,我们使用 ____ 托管,但由于服务器过载,我们经常遇到 504 错误。 我不喜欢____如何处理这个问题,我们还被告知我们将不得不尽快转向他们的专门计划,我认为这没有必要。
由于服务器过载,高流量和电子商务网站更容易出现 504 错误,因为它们会生成许多不可缓存的请求。 但是,此问题可能会出现在任何网站上,包括简单的博客。 许多房东会要求您升级到高级套餐来解决问题,这在大多数情况下是不必要的。
Kinsta 为每个站点使用 LXD 托管主机和编排的 LXC 软件容器。 因此,每个 WordPress 站点都位于自己的隔离容器中,可以访问运行它所需的所有软件(Linux、Nginx、PHP、MySQL)。 这些资源是 100% 私有的,不与任何其他站点共享,甚至是您的站点。
大多数提供共享托管计划的 WordPress 主机都没有此功能。 因此,与您的服务器托管在同一台服务器上的高流量站点也可能导致您的站点抛出 504 错误。
除了隔离其容器中的每个站点外,Kinsta 还设计了其基础架构以轻松处理数千个并发连接。 Kinsta 甚至在本地主机上托管 MySQL 数据库,而不是远程服务器。 这意味着机器之间没有延迟,从而导致更快的查询和更少的超时发生机会。
许多迁移到 Kinsta 的客户看到整体加载时间大幅减少。

过载的服务器并不是服务器超时的唯一原因。 504 错误可能还有许多其他原因:
慢速服务器基础设施
您用于托管 WordPress 站点的服务器可能没有足够的资源来处理负载。 这就像在使用了十年的 PC 上玩现代的图形密集型视频游戏。
服务器只是挂断了试图为网站提供服务。 解决此问题的唯一方法是升级到具有更好基础架构的服务器。 出于这个原因,即使是 Kinsta 最基本的 WordPress 托管计划也将处理中等流量的静态站点。
需要更多 PHP 工作者
PHP 工作者用于执行您的 WordPress 网站的代码。 每月有 50,000 名访问者的电子商务网站比具有相同流量的简单博客需要更多的资源。 如果所有服务器的 PHP 工作者都忙,他们将建立一个队列。
当队列变得太大时,服务器会忽略旧请求,这可能会导致服务器抛出 504 网关错误。 您可以向您的主机询问增加 PHP 工作人员的数量。 这将允许您的站点同时执行多个请求。
防火墙问题
您的服务器的防火墙可能有一些错误或不正确的配置。 也许,它的一些规则会阻止服务器正确建立连接。 要知道您的防火墙是否是罪魁祸首,您可以检查服务器的错误日志。
网络连接问题
代理服务器和 Web 服务器之间的连接问题可能会导致响应 HTTP 请求的延迟。 如果您使用负载均衡器,它也可能存在网络连接问题。
HTTP 超时
当 Web 服务器和客户端之间的连接保持打开时间过长时,可能会发生 HTTP 超时。 对于 WordPress 网站,这通常在运行 WordPress 导入时发生。 解决此问题的一种方法是切换到更快的互联网连接。
您还可以使用支持 WP-CLI 的工具直接在服务器上运行脚本,完全绕过 HTTP 连接。 例如,您可以使用 wp import WP-CLI 命令直接通过命令行界面运行 WordPress Importer 插件。
重要提示: 504 Gateway Timeout 错误类似于 503 Service Unavailable 错误或 502 Bad Gateway 错误。 但它们都是不同的。 如果您在 Kinsta 遇到 504 错误,请打开支持票以立即解决您的问题。
要自行监控站点的停机时间,您可以使用 updown.io 之类的工具。 它会通过向其发送 HTTP 请求来定期检查您网站的状态(或任何 URL)。 您可以将检查频率设置为 15 秒到 1 小时。 如果您的网站没有正确响应,它会通过电子邮件或短信通知您。

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

监控您的网站将使您了解它的关闭频率。 如果您使用的是共享托管服务提供商,这将特别有用。 大多数托管 WordPress 主机会自动为您处理此问题。 因此,总是建议和他们一起去。
有关详细说明,请查看 Kinsta 关于托管 WordPress 托管重要性的帖子。
垃圾邮件、机器人或 DDoS 攻击
恶意攻击者可以通过发送过多和/或资源密集型请求使您的 Web 服务器陷入爬网状态。 如果您的网站被机器人发送垃圾邮件或遭受 DDoS 攻击,它可能会使您的服务器不堪重负,并导致许多真实用户出现 504 网关超时错误。
您可以查看您的服务器流量和分析,看看您是否可以发现网站流量中的任何不规则模式。 如果您使用 Kinsta 托管您的网站,则可以通过转到 MyKinsta Analytics 仪表板轻松查看此数据。

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

接下来,您可以查看缓存分析报告。 在这里,您可以看到有多少请求绕过或丢失缓存,或从缓存中获得服务。 出于性能和稳定性的原因,您希望缓存尽可能多的请求,但并不总是可以实现这一点。
例如,WooCommerce 网站会为购物车和结账流程等功能生成许多不可缓存的请求。

最后,您可以使用 WordPress 安全插件通过发现和阻止令人担忧的流量/IP 来增强您网站的安全性。 您也可以要求您的主机阻止某些 IP。
因停机时间和 WordPress 问题而苦苦挣扎? Kinsta 是在设计时考虑到性能和安全性的托管解决方案! 查看我们的计划
根据攻击的长度和规模,这可能是一个将 IP 列入黑名单的永无止境的过程,因为许多攻击者在被阻止后会更改其 IP 和代理地址。
注意: 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 网站添加电子商务功能的插件。
解决此问题的最简单方法是停用所有插件。 请记住,如果您只是停用插件,您不会丢失任何数据。
如果您可以访问管理仪表板,则可以转到插件屏幕,从批量操作菜单中选择停用,选中所有插件,然后点击应用按钮。 这将禁用所有插件。

如果您无法访问您的管理区域,您可以使用前面描述的方法通过 SFTP 禁用插件。 只需重命名主插件文件夹名称即可批量禁用所有插件。
停用所有插件后,请检查您的网站是否正确加载。 如果它有效,您必须激活每个插件,在启用每个插件后测试站点。
最后,确保您的插件、主题和 WordPress 核心是最新的。 此外,请确保您的服务器正在运行推荐的 PHP 版本。
如果您觉得这太过分了,您可以随时向您的房东寻求帮助。 Kinsta 使用 Kinsta APM 和其他故障排除技术来帮助客户缩小可能导致错误的插件、查询或脚本的范围。
在最坏的情况下,例如插件/主题中的查询效率低下或代码错误,您可以聘请 WordPress 开发人员来解决问题。
检查错误日志
在对 WordPress 站点上的 504 错误进行故障排除和调试时,查看错误日志非常有用。 这可以帮助您快速缩小网站上的问题范围,尤其是当它是由您网站上要求苛刻的插件引起的时。
如果您是 Kinsta 客户,您可以在 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”的文件夹中找到错误日志。

Kinsta 用户还可以从他们的 MyKinsta 仪表板启用 WordPress 调试模式。 为此,请导航至站点 > 工具 > WordPress 调试,然后单击启用按钮。 这将允许您查看 PHP 错误和通知,而无需通过 SSH 或 SFTP 启用调试模式。
最后,您可以检查服务器日志文件。 根据您用于托管 WordPress 网站的服务器,它们通常位于以下位置:
- 阿帕奇:
/var/log/apache2/error.log/
- Nginx:
/var/log/nginx/error.log/
您可以参考 Apache 或 Nginx 的日志记录相关文档以获取更多信息。
正确配置 Apache 或 Nginx 设置
您可以编辑服务器配置文件以增加特定指令的资源限制。 这可以帮助您解决 504 网关超时错误。
对于 Apache 网络服务器
首先,将以下代码添加到您的httpd.conf :
TimeOut 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 网络服务器
如果您在 Nginx + FastCGI 进程管理器 (PHP-FPM) 上运行 WordPress 站点或使用 Nginx 作为 Apache 的反向代理,您可以调整服务器设置以帮助防止 504 Gateway Timeout 错误。
Nginx + FastCGI (PHP-FPM) 上的 504 网关超时错误
首先,您必须编辑 PHP-FPM 池配置文件。 您可以在 Nginx 服务器的/etc/php7.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 reload sudo service php7.4-fpm reload
重新加载 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 Gateway Timeout 错误一样。 这是因为它们都发生在服务器端。 这些错误包括:
- 500内部服务器错误
- 501 未实现错误
- 502 错误网关错误
- 503 服务不可用错误
由于客户端问题导致的其他 HTTP 错误,例如 404 Not Found 错误,也类似于 504 错误。 您可以参考 Kinsta 的详细指南和 HTTP 状态代码列表以获取更多信息。
文概括
由于多种原因,您的 WordPress 站点可能会受到 504 网关超时错误的影响。 在本文中,您了解了如何对所有问题进行故障排除。 通常,这些错误是由服务器端问题引起的,在这种情况下,您可以联系您的主机并快速解决问题。
但是,您还必须了解,此错误可能是由于第三方插件、主题、服务、低效的数据库查询或其中两个或多个组合造成的。 如果您要最大限度地利用服务器资源(例如 PHP 工作者),建议优化您的站点以提高性能。
如果您仍然发现您的网站超时,那么很可能您需要升级您的托管计划或 PHP 工作人员的数量。 我建议您仅在用尽本文中描述的所有其他解决方案后才考虑此选项。
从简单的静态网站到复杂的电子商务和会员网站,Kinsta 的可扩展托管计划旨在适应所有类型的网站。 要了解有关我们可扩展云托管的更多信息,请查看本文!
我们错过了什么吗? 如果您仍然发现难以修复 WordPress 网站上的 504 Gateway Timeout 错误,请在下方发表评论。