Nginx随笔(一):HTTP配置

HTTP框架定义了3个级别的配置:main,srv,loc,分别表示直接出现在http{},server{},location{}块内的配置项。

1.当遇到http{}配置块时,HTTP框架会调用所有HTTP模块的可能实现的create_main_conf,create_srv_conf,create_loa_conf方法生成存储main级别的配置参数的结构体;

2.当遇到server{}配置块时,HTTP框架会调用所有HTTP模块的可能实现的create_srv_conf,create_loa_conf方法生成存储srv级别的配置参数的结构体;

3.当遇到location{}配置块时,HTTP框架会调用所有HTTP模块的可能实现的create_loc_conf方法生成存储loc级别的配置参数的结构体;

 每个进程中都有一个唯一的ngx_cycle_t核心结构体,它有一个成员conf_ctx 维护着所有模块的结构体,其类型是void****。conf_ctx意义为首先指向一个成员皆为指针的数组,其中每个成员指针又指向另一个成员皆为指针的数组,第2个子数组中成员指针才会指向各模块生成的配置结构体。

 当Nginx检测到http{}这个关键配置项时,HTTP配置模型就启动了,这时会首先建立1个ngx_http_conf_ctx_t结构

这时候HTTP框架会为所有的HTTP模块建立3个数组,分别存放所有HTTP模块的create_main_conf,create_srv_conf,create_loa_conf方法返回的地址指针。

 

 

posted @ 2016-07-22 11:42  静夜思2012  阅读(135)  评论(0编辑  收藏  举报