ngx_http_core_create_main_conf

打印 上一主题 下一主题

主题 1764|帖子 1764|积分 5292

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在 src\http\ngx_http_core_module.c

  1. static void *
  2. ngx_http_core_create_main_conf(ngx_conf_t *cf)
  3. {
  4.     ngx_http_core_main_conf_t  *cmcf;
  5.     cmcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_core_main_conf_t));
  6.     if (cmcf == NULL) {
  7.         return NULL;
  8.     }
  9.     if (ngx_array_init(&cmcf->servers, cf->pool, 4,
  10.                        sizeof(ngx_http_core_srv_conf_t *))
  11.         != NGX_OK)
  12.     {
  13.         return NULL;
  14.     }
  15.     cmcf->server_names_hash_max_size = NGX_CONF_UNSET_UINT;
  16.     cmcf->server_names_hash_bucket_size = NGX_CONF_UNSET_UINT;
  17.     cmcf->variables_hash_max_size = NGX_CONF_UNSET_UINT;
  18.     cmcf->variables_hash_bucket_size = NGX_CONF_UNSET_UINT;
  19.     return cmcf;
  20. }
复制代码
  ngx_http_core_create_main_conf 函数是 Nginx 在初始化 HTTP 核心模块时创建并初始化主配置结构体

  
 
  1.     ngx_http_core_main_conf_t  *cmcf;
  2.     cmcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_core_main_conf_t));
  3.     if (cmcf == NULL) {
  4.         return NULL;
  5.     }
复制代码
  分配内存,作为一个 ngx_http_core_main_conf_t 结构体,也是函数要返回的地点

  
  ngx_http_core_main_conf_t-CSDN博客
  
 
  1.     if (ngx_array_init(&cmcf->servers, cf->pool, 4,
  2.                        sizeof(ngx_http_core_srv_conf_t *))
  3.         != NGX_OK)
  4.     {
  5.         return NULL;
  6.     }
复制代码
  if (ngx_array_init(&cmcf->servers, cf->pool, 4, sizeof(ngx_http_core_srv_conf_t *)) != NGX_OK)
初始化一个动态数组 cmcf->servers,用于存储(`server` 级)的配置。  
  
参数解析
&cmcf->servers:目标动态数组的地点
 cf->pool:内存池,用于分配数组所需的内存。  
  4:数组的初始预分配元素个数(可动态扩展)。  
  sizeof(ngx_http_core_srv_conf_t *):数组元素的大小(每个元素是一个指向 `ngx_http_core_srv_conf_t` 结构体的指针)。  
返回值检查: 
   `ngx_array_init` 返回 `NGX_OK` 表现成功,否则返回错误码。  
  若初始化失败,直接返回 `NULL`,停止函数实行。  


  
  1.     cmcf->server_names_hash_max_size = NGX_CONF_UNSET_UINT;
  2.     cmcf->server_names_hash_bucket_size = NGX_CONF_UNSET_UINT;
  3.     cmcf->variables_hash_max_size = NGX_CONF_UNSET_UINT;
  4.     cmcf->variables_hash_bucket_size = NGX_CONF_UNSET_UINT;
  5.     return cmcf;
复制代码
  初始化这些字段,设置的值的寄义表现此字段尚未设置

  然后返回 ngx_http_core_main_conf_t 结构体的地点 

  
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表