首页 > 其他 > 详细

【Nginx】http配置模型

时间:2014-07-12 13:36:00      阅读:358      评论:0      收藏:0      [点我收藏+]

当Nginx检测到http关键配置项时,http配置模型启动,首先会建立一个ngx_http_cong_ctx_t结构。

typedef struct

{

  void **main_conf;

  void **srv_conf;

  void **loc_conf;

}ngx_http_conf_ctx_t;

http框架会为所有的http模块建立三个数组,分别存放所有http模块create_main_conf,create_srv_conf,create_loc_conf方法返回的地址指针。

一、解析http配置的流程

1.Nginx进程的主循环调用配置文件解析器来解析nginx.conf文件

2.当发现配置文件中含有http{}关键字时,http框架开始启动。

3.http框架会初始化所有http模块的序列号,并创建ngx_http_conf_ctx_t结构

4.调用每个http模块的create_main_conf,create_srv_conf,create_loc_conf方法

5.把各http模块上述三个方法返回的地址依次保存到ngx_http_conf_ctx_t结构体的单个数组中

...

二、http配置模型的内存布局

如果实现了create_main_conf方法,它所创建的结构体只会存放直接出现在http{}块下的配置项;如果实现了create_srv_conf方法,那么它所创建的结构体既会存放直接出现在http{}块下的配置项,也会存放直接出现在server{}块下的配置项,create_loc_conf方法同理。

以上设计是考虑到nginx.conf文件中高级别的配置可以对所包含的低级别配置起作用,同时也给出了不同级别下同名配置冲突时的解决方案。

三、如何合并配置项

对各模块及其嵌套模块的结构体调用merge_srv_conf,merge_loc_conf操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【Nginx】http配置模型,布布扣,bubuko.com

【Nginx】http配置模型

原文:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3836413.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!