Nginx http_core模块 配置文件解析

本文详细解析了Nginx中http_core模块的配置文件解析过程,包括ngx_init_cycle函数的执行步骤,ngx_conf_parse如何处理指令,以及如何通过ngx_core_module创建和初始化配置。内容涵盖ngx_cycle_t、ngx_core_conf_t、ngx_http_conf_ctx_t等结构,重点讨论了配置文件的读取、指令处理和结构体成员的设置。
摘要由CSDN通过智能技术生成

        Nginx 的配置文件解析很麻烦,数据结构交织在一起,特别恶心,经过几天的分析,得到了一幅大概的关系图,自以为是正确的。


cycle = ngx_init_cycle(&init_cycle):

       1、在内存池中分配一个ngx_cycle_t变量,并初始化它的各个成员。

       2、调用core类型的create_conf,实际只有一个ngx_core_module_create_conf函数----初始化ngx_core_conf_t结构(存放core_module支持的指令),保存在ngx_cycle->conf_ctx数组中。可以说,此时,ngx_cycle->conf_ctx数组中只有一个ngx_core_conf_t结构。

       3、初始化ngx_conf_t结构。

       4、ngx_conf_parse 解析配置文件,把结果保存在模块对应的ngx_conf里面。

       5、调用core类型的init_conf,实际只有一个ngx_core_module_init_conf函数(初始化对应的ngx_core_conf_t函数)。为什么要init,都已经解析配置文件了,应该在这之前初始化呀--如果值为-1,表明没有设置,初始化默认值!

       6、ngx_open_listening_sockets:遍历listening数组并打开所有侦听sockets(socket()->setsockopt()->bind()->listen())。

       7、调用所有模块的init_module(实际上只有ngx_event_core_module模块定义了该callback,即只有ngx_event_module_init()被调用)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值