码迷,mamicode.com
首页 > 其他好文 > 详细

【Nginx】请求上下文

时间:2014-07-13 08:09:49      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   使用   服务器   re   

上下文与全异步web服务器的关系

请求上下文指在一个请求的处理过程中,把一些关键的信息保存下来的类似struct这样的结构体。每个http模块都可以有自己的上下文结构体,一般都是在刚开始处理请求时在内存池上分配它,之后当经由epoll、http框架再次调用到http模块的处理方法时,这个http模块可以由请求上下文结构体中获取信息。请求结束时就会销毁该请求的内存池,自然也就销毁了上下文结构体。

Nginx是全异步处理的web服务器,http模块可能会多次反复处理同一个请求,所以必须定义上下文结构体来保存处理过程的中间状态。Nginx框架不会维护这个上下文,只能由这个请求自己保存着上下文结构体。

使用http上下文

#define ngx_http_get_modult_ctx(r,module)(r)->ctx[module.ctx_index]

#define ngx_http_set_ctx(r,c,module) r-ctx(module.ctx_index)=c;

ngx_http_get_module_ctx接受两个参数,第一个参数为ngx_http_request_t指针,第二个参数是当前的http模块对象。返回值是某个http模块的上下文结构体指针。如果这个http模块没有设置过上下文,将会返回NULL 。

ngx_http_set_ctx接受三个参数,第一个参数是ngx_http_request_t指针,第二个参数是准备设置的上下文结构体的指针,第三个参数是http模块对象。

http框架如何维护上下文结构

typedef struct ngx_http_request_s

{

  ...

  void **ctx;

  ...

}ngx_http_request_t;

http框架在ctx数组中保存所有http模块上下文结构体的指针。

 

【Nginx】请求上下文,布布扣,bubuko.com

【Nginx】请求上下文

标签:style   http   color   使用   服务器   re   

原文地址:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3838053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!