nginx状态码
本文最后更新于15 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

以下是 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
  1. 检查 Nginx 日志
   tail -f /var/log/nginx/error.log
  1. 模拟请求(如测试 413):
   dd if=/dev/zero bs=1M count=200 | curl -X POST --data-binary @- http://example.com

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

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇