Web 开发常见 HTTP 错误码解决方案:502/503/504/400/401/403
本文汇总了 Web 开发中常见的 HTTP 错误码(502、503、504、400、401、403)及其成因与排查方案。主要涉及反向代理(如 Nginx、HAProxy)场景下的隧道建立失败、上游服务异常、超时、认证缺失及权限不足等问题。通过检查代理日志、调整超时配置、优化后端性能、验证 Token 及权限设置等措施,可有效解决连接重置、网关超时及请求被拒等故障,保障服务稳定运行。

本文汇总了 Web 开发中常见的 HTTP 错误码(502、503、504、400、401、403)及其成因与排查方案。主要涉及反向代理(如 Nginx、HAProxy)场景下的隧道建立失败、上游服务异常、超时、认证缺失及权限不足等问题。通过检查代理日志、调整超时配置、优化后端性能、验证 Token 及权限设置等措施,可有效解决连接重置、网关超时及请求被拒等故障,保障服务稳定运行。

在使用反向代理(如 Nginx、HAProxy)或正向代理(如 Squid、Charles)时,经常会遇到各种 HTTP 错误码。本文将围绕以下几类常见问题,逐一分析成因并给出排查及解决思路:
代理或网关返回 HTTP 502 或 503,前端收到类似:
HTTP/1.1 502 Bad Gateway
HTTP/1.1 503 Service Unavailable
CONNECT 方法。proxy_connect 与 proxy_pass 配置,并开启 ssl_preread(TCP 代理)或正确的 ssl 配置。error_log /var/log/nginx/error.log notice;cache.log 中查找拒绝隧道或连接错误。验证后端连通性
curl -v -x http://proxy:port https://your-upstream.example.com
ECONNRESET(Connection reset)或 ETIMEDOUT(Connection timed out)。日志中看到:
Error: socket hang up
Error: connect ETIMEDOUT
CONNECT proxy:port HTTP/1.1 后就重置,说明代理不支持隧道。ps aux、top 观察 CPU/内存、线程数。worker_connections、Squid 的 max_filedescriptors)。测试代理隧道能力
curl -v -x http://proxy:port https://example.com
前端或客户端收到:
HTTP/1.1 504 Gateway Timeout
通常表示代理等待上游响应超过设定阈值。
HAProxy 示例:
timeout connect 10s
timeout server 30s
timeout client 30s
Nginx 示例:
proxy_connect_timeout 10s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
代理返回 HTTP/1.1 400 Bad Request,并提示:
'代理根本不认你的 CONNECT 请求。'
Squid 中需在配置里加:
acl SSL_ports port 443
http_access allow CONNECT SSL_ports
正确的 CONNECT 用法:
CONNECT api.example.com:443 HTTP/1.1
Host: api.example.com:443
Proxy-Authorization: Basic XXXXX
客户端或浏览器收到:
HTTP/1.1 401 Unauthorized
或响应头中带有 WWW-Authenticate。
Authorization 头。Authorization: Bearer <token> 或 Basic <credentials>。exp、nbf 等字段。在代理或应用中允许跨域 Authorization 头:
add_header Access-Control-Allow-Headers "Authorization,Content-Type";
客户端收到:
HTTP/1.1 403 Forbidden
无论请求格式和认证凭证是否正确,仍提示权限不足。
chmod/chown)。Nginx 示例:
location /admin {
allow 192.168.1.0/24;
deny all;
}
通过以上完善的错误码排查与解决方案,基本涵盖了代理相关的常见 4xx/5xx 问题。从日志入手,找到根因,结合代理和后端配置,才能在复杂网络环境和高并发场景下保障服务稳定运行。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online