首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

nginx源码分析(一)——启动过程

2012-08-08 
nginx源码分析(1)——启动过程1. 重要的数据结构1. ngx_module_tnginx中所有模块的类型都是ngx_module_t类型

nginx源码分析(1)——启动过程
1. 重要的数据结构        1. ngx_module_t        nginx中所有模块的类型都是ngx_module_t类型的,定义了模块的一些属性。nginx是完全模块化的,所有的组件都是模块,从而实现了nginx的高度松耦合。同时,我们在进行nginx模块开发时,也离不开这个数据结构。

模块类型(type)上下文属性类型(ctx)NGX_CORE_MODULEngx_core_module_t(ngx_conf_file.h)NGX_CONF_MODULENULLNGX_HTTP_MODULEngx_http_module_t(http/ngx_http_config.h)NGX_EVENT_MODULEngx_event_module_t(event/ngx_event.h)NGX_MAIL_MODULEngx_mail_module_t(mail/ngx_mail.h)
        2. ngx_commond_t        ngx_commond_t描述的是模块的配置指令,也就是出现在配置文件的指令。nginx模块支持多个配置指令,所以是以ngx_commond_t数组形式存储的。这个结构在配置文件解析和模块的配置结构信息初始化时会用到。
    if (ngx_process == NGX_PROCESS_SINGLE) {        ngx_single_process_cycle(cycle);    } else {        ngx_master_process_cycle(cycle);    }
        可以看出,这里分为单进程和多进程模式,大部分情况我们都采用多进程模式。这部分内容会在另一篇专门讲述nginx进程模型的文章中再详细介绍。介绍完整个nginx的启动过程,可以总结出启动过程就是一堆的初始化工作,其中最重要的是配置文件解析的过程,在一个ngx_conf_parse函数背后隐藏了大量的秘密,下一篇源码分析就会介绍http模块的启动流程,这样大家就可以了解一个具体模块是怎么初始化的的。




 

热点排行