イベントの処理
NGX_EVENT_MODULE に準拠する 2 つのモジュール、つまり 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_mod にありますule、ngx_even t_connections 関数を呼び出し、接続値を 1024 に設定します、構造は次のとおりです:
以上、【nginxのソースコード解析】構成解析(イベントスコープ)を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。