nginx模块开发入门(六)-3.1 Anatomy of a Handler (Non-proxying)
3. Handlers
接下来我们把模块的细节放到显微镜下面来看,它们到底怎么运行的。
3.1. 剖析Handler(非代理)
Anatomy of a Handler (Non-proxying)
Handler一般做4件事:获取location配置;生成合适的响应;发送响应头;发送响应体。Handler有一个参数,即请求结构体。请求结构体包含很多关于客户请求的有用信息,比如说请求方法,URI,请求头等等。我们一个个地来看。
3.1.1. 获取location配置
这部分很简单。只需要调用 ngx_http_get_module_loc_conf,传入当前请求的结构体和模块定义即可。下面是我的circle gif handler的相关部分:
return ngx_http_output_filter(r, &out);