Nginx HTTP 请求处理的 11 个阶段

Request pipeline: POST_READ → LOG

01 / 1-3 接入与匹配 02 / 4-5 URL 改写 03 / 6-8 限流与鉴权 04 / 9-11 内容生成与日志 读 Header + location 匹配 URL 改写 限流 + 鉴权 生成响应 + 记日志 POST_READ realip 改写 remote_addr SERVER_REWRITE server 块内 rewrite FIND_CONFIG location 最长前缀 + 正则 REWRITE location 内 rewrite POST_REWRITE 改写后跳转判断 PREACCESS limit_conn / limit_req 漏桶 ACCESS access / auth_basic / auth_request POST_ACCESS 配合 satisfy 调度 PRECONTENT try_files / mirror 镜像 CONTENT static / index / autoindex / concat LOG ngx_http_log_module 不可禁用 进入改写 进入限流 进入内容 响应后 Legend User UI Agent logic Policy Tool action Context / trace

阶段设计原则

  • • 11 个阶段串成管线,模块按阶段挂载
  • • 同一阶段内多模块按源码顺序执行
  • • 某模块不向下传递则后续模块收不到请求
  • • return 属 REWRITE,先于 ACCESS 生效

关键节点

  • • POST_READ: realip 改写 remote_addr
  • • FIND_CONFIG: location 最长前缀 + 正则
  • • PREACCESS: 漏桶算法限制 QPS
  • • CONTENT: root vs alias 的路径映射