Solo  当前访客:1 开始使用

今天大晴天

记录精彩的程序人生

nginx状态码

2025-06-05 11:37:13 jing123456
0  评论    0  浏览

以下是 HTTP 状态码 的详细说明,涵盖 3xx 重定向4xx 客户端错误5xx 服务器错误 的常见状态码:


3xx 重定向类

301 Moved Permanently(永久重定向)

  • 含义:请求的资源已永久移动到新位置,浏览器会缓存此跳转。
  • 用途:域名切换、HTTPS 强制跳转。
  • Nginx 示例
    return 301 https://example.com$request_uri;
    

302 Found(临时重定向)

  • 含义:资源临时跳转到新地址,浏览器不会缓存。
  • 用途:A/B 测试、临时维护跳转。
  • Nginx 示例
    return 302 https://temp.example.com;
    

305 Use Proxy(需通过代理访问)

  • 含义:请求必须通过指定的代理服务器访问(已废弃,现代浏览器很少支持)。
  • 示例
    HTTP/1.1 305 Use Proxy
    Location: http://proxy.example.com
    

307 Temporary Redirect(临时重定向,严格版 302)

  • 含义:与 302 类似,但强制要求重定向时保持相同的 HTTP 方法(如 POST 请求不会变成 GET)。
  • 用途:API 重定向时保留请求方法。

4xx 客户端错误类

400 Bad Request(错误请求)

  • 含义:请求语法错误,服务器无法解析。
  • 常见原因:无效的请求头、畸形 JSON/XML 数据。

402 Payment Required(需付费)

  • 含义:保留状态码,通常用于支付场景(如 API 调用需订阅)。

403 Forbidden(禁止访问)

  • 含义:服务器拒绝请求,即使身份验证也无法访问。
  • 常见原因:文件权限不足、IP 被禁用。
  • Nginx 示例
    location /admin/ {
        deny all;
        return 403;
    }
    

404 Not Found(资源不存在)

  • 含义:请求的资源未找到。
  • 解决方案:检查 URL 拼写或配置路由。

406 Not Acceptable(无法满足请求)

  • 含义:服务器无法返回客户端要求的格式(如 Accept 头指定了不支持的 Content-Type)。

408 Request Timeout(请求超时)

  • 含义:服务器等待客户端发送请求超时。
  • 常见原因:网络延迟或客户端未及时发送数据。

409 Conflict(冲突)

  • 含义:请求与服务器当前状态冲突(如重复提交同一资源)。

410 Gone(资源已永久删除)

  • 含义:类似 404,但明确表示资源已主动删除且不会恢复。

413 Payload Too Large(请求体过大)

  • 含义:请求数据(如文件上传)超过服务器限制。
  • Nginx 解决方案
    client_max_body_size 100M;  # 调整最大允许请求体大小
    

417 Expectation Failed(预期失败)

  • 含义:服务器无法满足 Expect 请求头的条件(如 Expect: 100-continue)。

418 I'm a teapot(彩蛋状态码)

  • 含义:愚人节玩笑代码,表示“我是茶壶”,无实际用途。

420 Enhance Your Calm(Twitter 专用)

  • 含义:Twitter API 限速时的返回码(非标准)。

422 Unprocessable Entity(无法处理的实体)

  • 含义:请求格式正确但语义错误(如缺少必填字段)。
  • 常见于:REST API 数据验证失败。

5xx 服务器错误类

500 Internal Server Error(服务器内部错误)

  • 含义:服务器遇到未知错误。
  • 排查方法
    tail -f /var/log/nginx/error.log  # 查看错误日志
    

502 Bad Gateway(网关错误)

  • 含义:Nginx 作为反向代理时,无法从上游服务器获取响应。
  • 常见原因:后端服务崩溃或超时。
  • 解决方案
    proxy_connect_timeout 60s;  # 增加超时时间
    

503 Service Unavailable(服务不可用)

  • 含义:服务器临时过载或维护。
  • Nginx 示例
    location / {
        return 503;
    }
    

504 Gateway Timeout(网关超时)

  • 含义:Nginx 等待上游服务器响应超时。
  • 解决方案
    proxy_read_timeout 300s;  # 默认 60s,建议调整
    

总结对比表

状态码类别含义典型场景
301重定向永久跳转域名变更、HTTPS 跳转
302重定向临时跳转A/B 测试
307重定向临时跳转且保留方法API 重定向
400客户端错误请求语法错误无效 JSON 数据
403客户端错误禁止访问无权限访问目录
404客户端错误资源不存在URL 拼写错误
413客户端错误请求体过大文件上传超限
418彩蛋“我是茶壶”愚人节玩笑
500服务器错误服务器内部崩溃代码异常
502服务器错误网关错误后端服务宕机
504服务器错误网关超时后端响应缓慢

排查工具

  1. 查看 HTTP 响应码
    curl -I https://example.com
    
  2. 检查 Nginx 日志
    tail -f /var/log/nginx/error.log
    
  3. 模拟请求(如测试 413):
    dd if=/dev/zero bs=1M count=200 | curl -X POST --data-binary @- http://example.com
    

掌握这些状态码能快速定位问题,尤其在调试 API 或配置 Web 服务器时非常有用!

,
TOP