50% off 所有套餐限时优惠,起价 $2.48/mo
12 min left
网页与商业应用

如何修复 WordPress 中的 504 网关超时错误?

Allen By Allen 12 min read Updated Jul 5, 2023
504 网关超时错误

504 网关超时错误是一个 HTTP 状态码,当服务器无法完成请求时返回的报告代码类型。你在浏览网页时可能遇到过这个错误,不过它没有其他 5xx 系列错误(比如 500 内部服务器错误)那么常见。502 网关错误在本指南中,我们解释这个错误的含义以及如何在 WordPress 中修复它。

当用户访问你的网站时,他们会向运行该网站的 WordPress 网络服务器生成并发送 HTTP 请求。服务器接收每个请求后,会返回一个 HTTP 状态码以及网站的请求资源。用户通常看不到这些信息,除非出现故障。此时用户会看到错误码,也就是一个 HTTP 状态码,它会提示问题的原因。

wordpress-vps Start Blogging

在一流硬件上自托管 WordPress,采用 NVMe 存储和全球最低延迟,选择你喜欢的发行版。

获取 WordPress VPS

什么是 504 网关超时错误?

这是 5xx 系列状态码。5 系列属于服务器端错误,意味着问题需要管理员来解决。这类错误码有大约几种,每种都有不同的解决方案(例如,请参阅我们的 HTTP 错误 505 快速解决指南)。如你所知,错误可能发生在连接的任何环节:用户的浏览器、他们的网络连接、中间的任何地方,或你的服务器。当错误发生在用户无法控制的范围内时,就是服务器端错误。它出现在请求因为多个服务器之间的通信失败而无法完成时。

这个错误可能以多种方式呈现给用户(或在你浏览网络时呈现给你)。例如:

  • 504 Gateway Timeout
  • 504 网关超时 nginx
  • 网关超时错误
  • HTTP Error 504
  • 504 网关超时 - 服务器未在规定时间内响应
  • 此页面无法正常工作。域名响应超时
  • HTTP 错误 504 – 网关超时
  • Gateway Timeout (504)
  • HTTP 504
  • 504 Error

但这具体是什么意思呢?

504 错误是什么原因引起的?

504 网关超时错误发生在服务器无法从充当网关或代理的另一台服务器收到及时响应时。简单来说,就是请求已发送到您的网站,但等待响应的时间已超时。

造成此错误的最常见原因包括连接问题:

  • 互联网连接不良 出现在用户端,导致通信故障,因此无法收到响应。
  • 浏览器兼容性问题, 同样导致通信故障和响应超时。
  • 代理设置不当, 基本上阻止了请求到达服务器,因此无法收到响应。

不过,问题也可能出在服务器端。如果您用性能较弱的设备或服务器来托管 WordPress 网站,服务器可能在高峰流量时资源不足以及时响应请求。这会导致 网站性能缓慢 从而引发响应超时。

类似情况下,如果您使用 shared hosting 计划,只要托管在共享服务器上的一两个网站遭遇高峰流量,就会拖累该服务器上运行的每个网站。原因是,正如名称所示, 共享主机上的所有资源都由所有客户端同时共享 这与 VPS 不同,您可以获得全部专属资源。这实际上是选择 WordPress VPS 而不是共享主机的最大原因。

504 网关超时错误也可能发生在您的服务器 防火墙配置错误时。这种情况特别常见,尤其是在使用内容分发网络或 CDN 来加速向用户提供内容时。CDN 是一个代理服务器网络,位于您的 Web 服务器和用户之间,它尝试从网络中更近的位置向用户提供您服务器上请求最多的静态数据,从而降低延迟并减少 Web 服务器的负载。但您的防火墙可能会阻止通过 CDN 网络传来的某些请求,例如 Cloudflare。

504 错误的另一个常见原因是 DNS Error。如果您的 DNS 设置配置不当,或公共 DNS 服务器上关于您网站的配置有误,用户请求可能无法到达您,因为它们找不到您的服务器,从而导致超时错误。这也可能因用户端的 DNS 设置不当或其代理服务器而发生。

wordpress-vps Start Blogging

在一流硬件上自托管 WordPress,采用 NVMe 存储和全球最低延迟,选择你喜欢的发行版。

获取 WordPress VPS

如何解决 504 网关超时错误?

如前所述,虽然 504 被归类为服务器端错误,但某些用户可能因自身端的故障而遇到这个错误。收到关于您网站的 504 报告时,您可以尝试从用户端逐步追溯到服务器端,找出可能的原因。

在介绍修复 WordPress 网站上此错误的方法之前,请记住这些方法中的某些需要对服务器文件和服务器设置进行更改,因此强烈建议您首先进行适当的 网站备份 和您可能进行的任何更改的备份。

1. Refresh or reload the page

首先确认确实存在问题,而不是偶发错误。服务器有时会短暂过载,刷新网页通常能解决。等待几分钟后按刷新按钮,或按 Ctrl+R(Windows)或 cmd+R(Mac)。

浏览器刷新按钮

2. Try a different browser.

有时问题源自你使用的特定浏览器。换个浏览器试试,看错误是否仍然出现。

3. C检查不同地区。

在等待几分钟刷新页面的同时,你可以检查问题是来自你的设备还是服务器端。有很多在线工具可以从不同地区检测你的网站。你可以用以下工具测试: Down for Everyone or Just me or Is it Down Right Now?

如果是用户端问题,可能与用户的浏览器、网络设置、防火墙、代理或连接有关。有时重启设备或网络设备就能解决问题。

4. Flush DNS

504 网关超时错误有时是因为 DNS 缓存不正确或过期,但清除它很简单。不过具体步骤因操作系统而异。

要在 Windows 上清空系统的 DNS 记录,打开命令提示符(cmd),输入下面的代码并按回车运行:

ipconfig /flushdns

命令运行后,你应该会看到类似下图的结果:

flush dns windows

如果你使用 Mac OSX,打开终端输入下面的代码清空 DNS 记录:

sudo killall -HUP mDNSResponder

如果你使用 Linux 系统,打开终端窗口输入下面的代码:

sudo/etc/init.d/nscd restart

这是清除用户端的 DNS。如果问题在服务器端,以上步骤可能无法解决。现在需要在你的 WordPress 服务器上修复。

5. DNS Problems

如果你最近修改了 web 服务器的 DNS 设置,这些更改可能需要最长 24 小时才能在互联网上生效。在此期间,某些网络的用户可能无法访问你的网站。

你可以暂时将 DNS 服务器切换到 Google Public DNS,看 504 状态码是否源自 DNS 问题。不过这适合高级用户。

wordpress-vps Start Blogging

在一流硬件上自托管 WordPress,采用 NVMe 存储和全球最低延迟,选择你喜欢的发行版。

获取 WordPress VPS

6. 检查错误日志

504 网关超时错误也可能由网站近期更改或更新引起。快速排查方法是检查错误日志,找出问题所在。在你的 WordPress 网站,可以在 wp-config.php 文件中添加以下代码来启用错误日志:

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

完成后,所有日志都会记录在 wp-content/debug.log 文件中。

debug file filezilla

7. 检查你的插件。

有问题的插件是 504 超时错误的常见原因。过期或不兼容的插件和扩展可能在 WordPress 中造成各种问题。这种情况下,缓存相关的插件可能有问题。但通常很难判断具体是哪一个。

要找出哪个 WordPress 插件导致 504 网关超时错误,你需要 停用所有 WordPress 插件 然后逐个重新启用它们,看看哪一个会导致 504 超时问题。

Go 到你的 WP 管理后台,然后点击 plugins tab. Here, check the box in front of “Plugins” to select all your plugins, then from the “bulk action” menu, select deactivate and click apply.

WordPress 插件批量停用

如果停用所有插件后问题消失,说明某个插件可能是罪魁祸首。逐个重新启用插件,检查问题是否重新出现。找到问题插件后,禁用或删除它,然后恢复其他插件的原有状态。

8. 检查您的内容分发网络 (CDN)

如果你使用 CDN 来加速网站内容交付,也需要检查那一侧的配置是否正常。Cloudflare 是小到中型网站最常用的 CDN 解决方案之一,同时充当 CDN 和云安全系统来缓解 DDoS 攻击。

504 gateway timeout cloudflare

上面显示的 504 错误表示 Cloudflare 这一端出现了问题。你可以联系 Cloudflare 支持团队,或者完全禁用它。如果选择禁用,对 DNS 记录的更改可能需要几个小时才会生效。

不过,更常见的情况是出现下面所示的 504 错误。这个状态码表示 Cloudflare CDN 无法从你的网络服务器获得响应。

cloudflare 504

9. 检查防火墙设置

防火墙配置得当对你的网站运行和响应请求至关重要。特别是在使用 CDN 提供内容时,由于许多请求来自同一批 CDN 节点,防火墙可能会将其误判为恶意流量并阻止这些请求。

要解决这个问题,你需要在网站防火墙中将 CDN 的所有 IP 地址加入白名单。通常,你可以在 CDN 的网站上找到这些 IP 地址列表。

你可以在服务器的 .htaccess 文件中将 IP 地址加入白名单。按照以下步骤操作:

  1. 使用 FileZilla 等 FTP 客户端连接到你的网络服务器,然后进入包含网站文件的根目录。
  2. 双击 .htaccess 文件以下载其备份。
  3. 然后在服务器上右键点击 .htaccess 文件,选择「查看/编辑」。

504 htaccess edit

现在把下面这段代码复制粘贴到文件里:

<RequireAny>
Require all granted
Require ip 127.0.0.1
</RequireAny>

将 127.0.0.1 替换为你要加入白名单的 IP 地址。如果需要将多个 IP 地址加入白名单,复制这一行,粘贴到前一行下方,然后修改 IP 地址即可。

10. 修改服务器配置

如果您的网站使用 WordPress VPS 主机,遇到 504 网关超时错误,可以尝试以下几种方法。这些方法涉及调整服务器设置和配置,以及提高特定资源限制。不过始终要记住 先备份所有数据.

这种方法需要你拥有 SSH 访问权限来操作 VPS。如果 VPS 上运行的网络服务器是 Apache,你可以通过 SSH 连接到 httpd.conf 文件,并增加默认超时值。将以下代码添加到文件中:

# Timeout: The number of seconds before receives and sends time out.

Timeout 600

另一个常用的网络引擎是 NGINX。如果你使用的是 NGINX,可以编辑位于 /etc/nginx/conf.d/timeout.conf 的 timeout.conf 文件

将下面的代码添加到文件中:

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

11. 升级您的主机方案

如果你的 WordPress 网站流量持续增长且运营稳定,服务器资源最终会面临紧张。当资源不足时,用户会遇到 504 超时错误。建议根据网站的流量情况升级托管计划。

wordpress-vps Start Blogging

在一流硬件上自托管 WordPress,采用 NVMe 存储和全球最低延迟,选择你喜欢的发行版。

获取 WordPress VPS

Conclusion

504 Gateway Timeout 错误是服务器端错误,但本质上意味着用户无法连接到服务器或收不到服务器的响应。这个问题可能出现在用户浏览器、互联网连接,或你自己的网站服务器的任何环节。

要排查并解决问题,需要逐步检查各个环节,找出真正的原因,然后进行修复。如果以上步骤都无法解决网站的 504 错误,建议直接联系你的主机商客服寻求帮助。

Share

博客更新

Keep reading.

Odoo 评测功能图像,左侧为大标题文字,右侧为 Odoo 徽标,周围环绕着漂浮的应用界面面板,背景为柔和紫色云主题。
网页与商业应用

Odoo 综合评测:这款 ERP 是否适合你的业务

Odoo 是增长型企业最常考虑的 ERP 平台之一,原因很简单:它在一个地方承诺了很多功能。销售、会计、库存。

Jim SchwarzJim Schwarz 11 min read
开源 WordPress 替代方案特色图像,采用彩色渐变背景、桌面显示器、代码编辑器、模糊仪表板预览以及左侧大标题文本。
网页与商业应用

最佳开源 WordPress 替代方案,为开发者量身打造

WordPress 仍然重要,仍为大量网站提供良好支持。其插件库托管超过 62,000 个插件,主题库提供超过 14,000 个免费主题。

Jim SchwarzJim Schwarz 14 min read
Automad 与 WordPress 特色图像,展示两个平台的标志和标题,询问开发者应该选择哪个 CMS。
网页与商业应用

Automad 与 WordPress:两个顶级 CMS 平台的深度对比

Automad 和 WordPress 用两种截然不同的方式解决同一个问题。Automad 是扁平文件 CMS 和模板引擎,内容存储在文件中而不是数据库,而 WordPress

Jim SchwarzJim Schwarz 9 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。