nginx执行流程 (1)

这里简单记录下 nginx 执行流程来辅助源码的阅读以及模块的编写

ngx_preinit_modules

主要是把每个模块附上索引和名称并计算出模块总数和最大模块数

ngx_init_cycle

初始化各种数据

    ngx_cycle_modules

    把所有的静态模块指针复制到 cycle->modules 数组里

    遍历模块调用 module->create_conf 并把结果存入 cycle->conf_ctx[index]

    ngx_conf_parse

    解析配置文件,每解析出一个指令则遍历模块对比模块中的 ngx_command_t 结构体的指令名,如果      相同则调用里面的 set 函数

    遍历模块调用 module->init_conf 函数初始化

    ngx_open_listening_sockets

    开始监听套接字

    ngx_init_modules

    遍历模块并调用 module->init_module


ngx_single_process_cycle

    遍历模块并调用 module->init_process

    ngx_process_events_and_timers

    开始处理事件

        ngx_process_events

         处理事件,linux 下会调用 ngx_epoll_process_events

        ngx_event_process_posted

         处理延时事件


上一篇: nginx 变量(1)
下一篇: nginx执行流程 (2) - http块配置文件解析
作者邮箱: 203328517@qq.com