首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

nginx模块开发入门(6)-3.1 Anatomy of a Handler (Non-proxying)

2013-10-06 
nginx模块开发入门(六)-3.1 Anatomy of a Handler (Non-proxying)3. Handlers接下来我们把模块的细节放到

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);

    Buffer链是Nginx IO模型中的关键部分,你得比较熟悉它的工作方式。
引用
问: 为什么buffer还需要有个`last_buf`变量啊,我们不是可以通过判断next是否是NULL来知道哪个是链表的最末端了吗?

答: 链表可能是不完整的,比如说,当有多个buffer的时候,并不是所有的buffer都属于当前的请求和响应。所以有些buffer可能是buffer链表的表尾,但是不是请求的结束。这给我们引入了接下来的内容……

热点排行