nginx解析配置文件代码备忘

ngx_cycle_t * ngx_init_cycle(ngx_cycle_t *old_cycle)分配内存,每个模块一个void *指针用来指向自已需要的结构:
cycle->conf_ctx = ngx_pcalloc(pool, ngx_max_module * sizeof(void *))

以上内存下传到配置解析函数:
conf.ctx = cycle->conf_ctx;


static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last)中根据模块编号获取各自的void*:
             else if (cmd->type & NGX_MAIN_CONF) {
                conf = &(((void **) cf->ctx)[ngx_modules[i]->index]);


nginx解析配置文件代码备忘_第1张图片

你可能感兴趣的:(nginx解析配置文件代码备忘)