處理events
其中符合NGX_EVENT_MODULE有兩個模組分別是ngx_event_core_module、ngx_epoll_module
核心代碼
ngx_modules[i]->ctx_index = ngx_event_max_module++;//設定模組內部索引 } ctx = ngx_pcalloc(cf->pool, sizeof(void *)); if (ctx == NULL) { return NGX_CONF_ERROR; } *ctx = ngx_pcalloc(cf->pool, ngx_event_max_module * sizeof(void *));//ctx指向數組 if (*ctx == NULL) { return NGX_CONF_ERROR; } *(void **) conf = ctx; for (i = 0; ngx_modules[i]; i++) { if (ngx_modules[i]->type != NGX_EVENT_MODULE) { continue; } m = ngx_modules[i]->ctx; if (m->create_conf) {//如果NGX_EVENT_MODULE類型模組存在create_conf函數那麼就調用該模組的create_conf函數,掛載到event上下文中 (*ctx)[ngx_modules[i]->ctx_index] = m->create_conf(cf->cycle);//建立相應上下文 if ((*ctx)[ngx_modules[i]->ctx_index] == NULL) { return NGX_CONF_ERROR; } } } pcf = *cf; cf->ctx = ctx; cf->module_type = NGX_EVENT_MODULE;//設定模組環境 cf->cmd_type = NGX_EVENT_CONF;//設定命令類型rv = ngx_conf_parse(cf, NULL);
然後解析worker_connections1024,該命令在ngx_event_core_module中,調用ngx_event_connections函數,設定connect值為1024,結構如下:
以上就介紹了[nginx源碼解析]配置解析(event範圍),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。