504

Gateway Timeout

官方
父母的服务器没有及时回应

504状态代码的一般解释

当服务器试图响应客户的请求,但在合理的时间内无法做到时,就会出现HTTP错误504 Gateway Timeout。这个错误通常被称为 "网关超时",因为它经常发生在客户端和服务器之间的代理服务器或网关无法连接或接收服务器的响应。 这可能有各种原因,如服务器过载、网络问题或代理或网关的配置不足。

HTTP状态代码504的规范

504 Gateway Timeout状态代码表明,服务器在充当网关或代理时,没有从它需要访问的上游服务器及时收到响应,以完成请求。

来源/引自: 504 Gateway Timeout HTTP状态代码由6.6.5的RFC7231部分指定。

如何用PHP抛出一个504状态代码?

要在一个网页上抛出HTTP状态代码504,可以使用PHP函数http_response_code。其语法如下: http_response_code(504) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

测试504 HTTP状态代码

为了能够在客户端显示HTTP状态代码(本例中为504 Gateway Timeout)和其他信息,必须用F12打开开发控制台。然后导航到 "网络 "标签。现在可以打开页面,网站(例如index.php)应该在网络标签中可见。这必须被选中,然后必须选择Herder部分。然后,用户将看到以下结果:

状态代码 504 Gateway Timeout
概述
URL: https://http-statuscode.com/errorCodeExample.php?code=504
状况: 504 Gateway Timeout
那些: Network
IP地址: XX.XX.XX.XX
状态代码 504 Gateway Timeout

我如何解决504状态代码的问题?

HTTP错误504 Gateway Timeout "网关超时 "可能有几个原因,例如:

  1. 服务器超载:如果服务器收到太多的请求,并且无法在合理的时间内回答这些请求,就可能发生超时错误。这可以通过扩展服务器或增加资源(如CPU、RAM或存储)来解决。
  2. 网络问题:如果客户端和服务器之间的网络连接出现问题,也会发生超时错误。这可以通过检查网络连接、检查路由器或防火墙配置或重新启动网络组件来解决。
  3. 代理或网关问题:在客户端和服务器之间进行调解的网关或代理也可能导致超时错误。这可以通过检查和调整代理或网关设置来解决。
  4. 缓慢的应用程序或数据库:如果一个应用程序或数据库运行缓慢,这也可能导致超时错误。这可以通过优化应用程序或数据库来解决。

为了解决这个问题,可以采取以下措施:

  1. 检查服务器状态,确保它没有过载。
  2. 检查网络连接,确保它是稳定和可靠的。
  3. 检查代理或网关的配置,并在必要时进行调整。
  4. 优化应用程序或数据库以提高其性能。
  5. 重新启动网络组件或服务器也有助于解决问题。

在许多情况下,这些措施的组合可以解决这个问题。

如何为状态代码504创建你自己的错误页面

使用 "Apache "和 "NGINX "网络服务器,创建你自己的504 Gateway Timeout错误页面是相对容易的。

Apache Webserver

网络服务器 "Apache "是互联网上最常见的网络服务器之一。要在 "Apache "中创建自己的504 Gateway Timeout错误页面,必须在以下文件中做如下修改。

File: .htaccess
ErrorDocument 504 /errors/504.html

NGINX Webserver

与网络服务器 "Apache "类似,"NGINX "也在互联网上广泛使用。要在 "NGINX "中创建自己的504 Gateway Timeout错误页面,必须在以下文件中做如下修改。

File: sites-enabled/default
error_page 504 /504.html;
location = /504.html {
    root /usr/share/nginx/html;
    internal;
}

504状态代码的浏览器兼容性

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

编程语言中的常量

HttpStatusCode.GatewayTimeout
http.StatusGatewayTimeout
Response::HTTP_GATEWAY_TIMEOUT
httplib.GATEWAY_TIMEOUT
http.client.GATEWAY_TIMEOUT
http.HTTPStatus.GATEWAY_TIMEOUT
:gateway_timeout
作者: Tony Brüser
作者: Tony Brüser

Tony Brüser 是一位热衷于 HTTP 状态代码的网络开发人员。

LinkedInGitHub