【笔记】深入理解Nginx-worker-05-HTTP框架共定义的11个阶段

typedef enum{
  //在接收到完整的HTTP头部后处理的HTTP阶段
  NGX_HTTP_POST_READ_PHASE=0,
  /*在还没有查询到URI匹配的location前, 
  这时rewrite重写URL也作为一个独立的HTTP阶段*/
  NGX_HTTP_SERVER_REWRITE_PHASE,
  /*根据URI寻找匹配的location, 这个阶段通常由ngx_http_core_module模块实现, 
  不建议其他HTTP模块重新定义这一阶段的行为*/
  NGX_HTTP_FIND_CONFIG_PHASE,
  /*在NGX_HTTP_FIND_CONFIG_PHASE阶段之后重写URL的意义与
  NGX_HTTP_SERVER_REWRITE_PHASE阶段显然是不同的, 
  因为这两者会导致查找到不同的location块(location是与URI进行匹配的)*/
  NGX_HTTP_REWRITE_PHASE,
  /*这一阶段是用于在rewrite重写URL后重新跳到NGX_HTTP_FIND_CONFIG_PHASE阶段, 
  找到与新的URI匹配的location。所以, 
  这一阶段是无法由第三方HTTP模块处理的, 而仅由ngx_http_core_module模块使用*/
  NGX_HTTP_POST_REWRITE_PHASE,
  /*处理NGX_HTTP_ACCESS_PHASE阶段前, HTTP模块可以介入的处理阶段*/
  NGX_HTTP_PREACCESS_PHASE,
  /*这个阶段用于让HTTP模块判断是否允许这个请求访问Nginx服务器*/
  NGX_HTTP_ACCESS_PHASE,
  /*当NGX_HTTP_ACCESS_PHASE阶段中HTTP模块的handler处理方法返回
  不允许访问的错误码时(实际是NGX_HTTP_FORBIDDEN或者NGX_HTTP_UNAUTHORIZED), 
  这个阶段将负责构造拒绝服务的用户响应。所以, 这个阶段实际上用于给NGX_HTTP_ACCESS_PHASE阶段收尾*/
  NGX_HTTP_POST_ACCESS_PHASE,
  /*这个阶段完全是为了try_files配置项而设立的。当HTTP请求访问静态文件资源时, 
  try_files配置项可以使这个请求顺序地访问多个静态文件资源, 
  如果某一次访问失败, 则继续访问try_files中指定的下一个静态资源。
  另外, 这个功能完全是在NGX_HTTP_TRY_FILES_PHASE阶段中实现的*/
  NGX_HTTP_TRY_FILES_PHASE,
  /*用于处理HTTP请求内容的阶段, 这是大部分HTTP模块最喜欢介入的阶段*/
  NGX_HTTP_CONTENT_PHASE,
  /*处理完请求后记录日志的阶段。例如, 
  ngx_http_log_module模块就在这个阶段中加入了一个handler处理方法, 
  使得每个HTTP请求处理完毕后会记录access_log日志*/
  NGX_HTTP_LOG_PHASE
}ngx_http_phases; 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部