NGINX HTTP 请求的十一个阶段

NGX_HTTP_POST_READ_PHASE

在接收到完整的HTTP头部后处理的HTTP阶段

NGX_HTTP_SERVER_REWRITE_PHASE

在将请求的URI与location表达式匹配前,修改请求的URI

NGX_HTTP_FIND_CONFIG_PHASE

根据请求URI寻找匹配的location表达式,这个阶段只能由ngx_http_core_module模块实现

NGX_HTTP_REWITE_PHASE

NGX_HTTP_FIND_CONFIG_PHASE找到location之后再修改请求的URI

NGX_HTTP_POST_REWRITE_PHASE

rewrite重写URI后,防止错误的nginx.conf配置导致死循环,这一阶段只能由ngx_http_core_module模块实现。防止死循环的方法是设置rewrite次数上限

NGX_HTTP_PREACCESS_PHASE

在处理NGX_HTTP_ACCESS_PHASE之前,HTTP模块可以介入的阶段

NGX_HTTP_ACCESS_PHASE

用于判断是否允许请求访问服务器

NGX_HTTP_POST_ACCESS_PHASE

NGX_HTTP_ACCESS_PHASE判断不允许后的收尾工作,返回拒绝服务的错误响应

NGX_HTTP_TRY_FILES_PHASE

完全是为try_files配置项设立的

NGX_HTTP_CONTENT_PHASE

用于处理HTTP请求内容,这是最常介入的阶段

NGX_HTTP_LOG_PHASE

记录日志阶段

基本规则

  1. 11个阶段,有些是必备的,有些是可选的
  2. 允许多个模块介入同一个阶段,将按照HTTP模块的ctx_index顺序执行它们提供的handler方法
  3. NGX_HTTP_FIND_CONFIG_PHASE、NGX_HTTP_POST_REWRITE_PHASE、NGX_HTTP_POST_ACCESS_PHASE、NGX_HTTP_TRY_FILES_PHASE 这四个阶段不允许HTTP模块介入,仅由HTTP框架实现
posted @ 2019-07-28 22:21  抟九  阅读(614)  评论(0编辑  收藏  举报