Heim > Artikel > Backend-Entwicklung > [Nginx-Quellcode-Analyse] Konfigurationsanalyse (Ereignisumfang)
Verarbeitung von Ereignissen
Es gibt zwei Module, die NGX_EVENT_MODULE entsprechen, nämlich ngx_event_core_module und ngx_epoll_module
Kerncode
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);
Analysieren Sie dann worker_connections1024. Rufen Sie die Funktion ngx_event_connections auf und setzen Sie den Verbindungswert wie folgt:
Das Obige stellt die Konfigurationsanalyse (Ereignisumfang) von [Nginx-Quellcode-Analyse] vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.