在 src\http\modules\ngx_http_scgi_module.c
static void *
ngx_http_scgi_create_main_conf(ngx_conf_t *cf)
{
ngx_http_scgi_main_conf_t *conf;
conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_scgi_main_conf_t));
if (conf == NULL) {
return NULL;
}
#if (NGX_HTTP_CACHE)
if (ngx_array_init(&conf->caches, cf->pool, 4,
sizeof(ngx_http_file_cache_t *))
!= NGX_OK)
{
return NULL;
}
#endif
return conf;
}
函数作用
ngx_http_scgi_create_main_conf 是 NGINX SCGI 模块的主配置创建函数。
其核心作用是:
分配并初始化模块的主配置结构:为 SCGI 模块创建一个配置对象(ngx_http_scgi_main_conf_t),用于存储模块的配置参数
初始化相关资源:根据编译时配置(如是否启用 HTTP 缓存),初始化必要的数据结构(如缓存数组)函数逻辑
函数的执行流程如下:
步骤 1:分配内存
ngx_pcalloc 是 NGINX 的内存分配函数,从指定内存池 (cf->pool) 分配内存,作为 ngx_http_scgi_main_conf_t 结构体
步骤 2:初始化缓存数组(当启用 HTTP 缓存时)
条件编译:仅在编译时定义了 NGX_HTTP_CACHE(即启用 HTTP 缓存功能)时执行。
初始化 conf->caches 数组,用于存储缓存相关的指针(ngx_http_file_cache_t*)