nginx
nginx 官方文档:http://nginx.org/en/docs/dev/development_guide.html#http_phases
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| NGX_HTTP_POST_READ_PHASE: 接收完请求头之后的第一个阶段,ngx_http_realip_module 注册在这个阶段
NGX_HTTP_SERVER_REWRITE_PHASE: server级别的uri重写阶段, ngx_http_rewrite_module 注册在这个阶段
NGX_HTTP_FIND_CONFIG_PHASE: 寻找location配置阶段,该阶段使用重写之后的uri来查找对应的location
NGX_HTTP_REWRITE_PHASE: location级别的uri重写阶段
NGX_HTTP_POST_REWRITE_PHASE: location级别重写的后一阶段,用来检查上阶段是否有uri重写,并根据结果跳转到合适的阶段
NGX_HTTP_PREACCESS_PHASE: 一般也用于访问控制,比如限制访问频率,并发等 ngx_http_limit_conn_module/ngx_http_limit_req_module这两个模块注册在此阶段
NGX_HTTP_ACCESS_PHASE: 访问权限控制阶段,比如基于ip黑白名单的权限控制,基于用户名密码的权限控制等, ngx_http_access_module/ngx_http_auth_basic_module 注册在此阶段
NGX_HTTP_POST_ACCESS_PHASE: 问权限控制的后一阶段,该阶段根据权限控制阶段的执行结果进行相应处理 `satisfy` 指令在此阶段生效。
NGX_HTTP_TRY_FILES_PHASE: try_files指令的处理阶段,如果没有配置try_files指令,则该阶段被跳过
NGX_HTTP_CONTENT_PHASE: 内容生成阶段,该阶段产生响应,并发送到客户端
NGX_HTTP_LOG_PHASE: 日志记录阶段,该阶段记录访问日志
|
openresty
参考文档:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ngx_lua/phase.html
1 2 3 4 5 6 7
| set_by_lua*: 流程分支处理判断变量初始化 rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网) access_by_lua*: IP 准入、接口权限等情况集中处理(例如配合 iptable 完成简单防火墙) content_by_lua*: 内容生成 header_filter_by_lua*: 响应头部过滤处理(例如添加头部信息) body_filter_by_lua*: 响应体过滤处理(例如完成应答内容统一成大写) log_by_lua*: 会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)
|