502

Bad Gateway

官方 子状态代码
下游服务器返回一个错误信息

HTTP状态代码502的规范

502 Bad Gateway状态代码表明,服务器在作为网关或代理时,在试图满足请求时从其访问的入站服务器收到了一个无效的响应。

来源/引自: 502 Bad Gateway HTTP状态代码由6.6.3的RFC7231部分指定。

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

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

测试502 HTTP状态代码

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

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

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

HTTP状态代码502 Bad Gateway通常由代理服务器返回,代理服务器充当客户端(例如Web浏览器)和客户端希望与之通信的服务器之间的中介。当代理服务器从上游服务器收到无效响应时,就会发生该错误。导致该错误的可能原因有多种,我将在下文中讨论一些最可能出现的问题,并解释如何解决这些问题。

  • 上游服务器超载或无法访问:出现 HTTP 状态代码 502 Bad Gateway 的一个常见原因是代理服务器所连接的上游服务器超载或无法访问。在这种情况下,您应该确保上游服务器运行正常,并有足够的资源处理请求。检查服务器日志和网络连接,查看是否存在任何问题。如果上游服务器超载,您可以将负载分散到多个服务器上,或者添加额外的资源来解决问题。
  • 网络问题:另一个可能的问题是代理服务器和上游服务器之间的网络问题。这可能是连接不稳定、DNS问题或妨碍通信的防火墙设置。检查网络设置,确保所有必要的端口开放,连接稳定。同时测试DNS解析,确保上游服务器解析正确。在某些情况下,重新启动代理服务器可能有助于解决网络问题。
  • 代理服务器配置错误:代理服务器配置不正确也可能导致 HTTP 状态代码为 502 Bad Gateway。确保代理设置正确,并且代理服务器将请求正确转发到上游服务器。检查代理配置文件和设置是否正确。在某些情况下,更新代理服务器或切换到另一个版本以解决已知问题可能也会有所帮助。
  • 上游服务器上的应用程序出错:也有可能是上游服务器上的应用程序或配置存在问题,导致 HTTP 状态代码为 502 Bad Gateway。检查应用程序和服务器日志以查找可能的错误或异常。更新或修复应用程序以解决已知问题。与开发人员或系统管理员合作分析和解决问题可能也会有所帮助。
  • 代理服务器本身的问题:最后,HTTP 状态代码 502 Bad Gateway 也可能是由代理服务器本身的问题引起的。这可能是由于软件错误、缺少更新或硬件问题。检查代理服务器日志中的错误信息或警告。将代理服务器更新到最新版本并检查已知问题。在某些情况下,可能需要重新安装代理服务器或切换到其他软件解决方案来解决问题。
    • 需要注意的是,HTTP 状态代码 502 Bad Gateway 的解析在很大程度上取决于您的特定环境和配置。与经验丰富的开发人员或系统管理员合作来诊断和解决问题可能会有所帮助。

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

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

Apache Webserver

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

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

NGINX Webserver

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

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

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

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.BadGateway
http.StatusBadGateway
Response::HTTP_BAD_GATEWAY
httplib.BAD_GATEWAY
http.client.BAD_GATEWAY
http.HTTPStatus.BAD_GATEWAY
:bad_gateway

502状态代码的子状态代码

子状态代码纯粹是技术性的,不应该被发送给用户。例如,如果状态代码502.1被抛出,它可能被记录下来,但状态代码502将被发送给用户。:
502.1 CGI application timeout
HTTP IIS, 非官方的
502.2 Bad gateway: Premature Exit
HTTP IIS, 非官方的
502.3 Bad Gateway: Forwarder Connection Error (ARR)
HTP IIS, 非官方的
502.4 Bad Gateway: No Server (ARR)
HTP IIS, 非官方的
502.5 WebSocket failure (ARR)
HTTP IIS, 非官方的
502.6 Forwarded request failure (ARR)
HTTP IIS, 非官方的
502.7 Execute request failure (ARR)
HTTP IIS, 非官方的
作者: Tony Brüser
作者: Tony Brüser

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

LinkedInGitHub