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;