您的位置:首页 > 科技 > 能源 > 免费下载app软件官网_天天自学网网址_教育培训加盟_人民日报新闻消息

免费下载app软件官网_天天自学网网址_教育培训加盟_人民日报新闻消息

2025/3/22 13:56:26 来源:https://blog.csdn.net/weixin_41812346/article/details/146428892  浏览:    关键词:免费下载app软件官网_天天自学网网址_教育培训加盟_人民日报新闻消息
免费下载app软件官网_天天自学网网址_教育培训加盟_人民日报新闻消息
/* add the server core module configuration to the address:port */static ngx_int_t
ngx_http_add_server(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,ngx_http_conf_addr_t *addr)
{ngx_uint_t                  i;ngx_http_core_srv_conf_t  **server;if (addr->servers.elts == NULL) {if (ngx_array_init(&addr->servers, cf->temp_pool, 4,sizeof(ngx_http_core_srv_conf_t *))!= NGX_OK){return NGX_ERROR;}} else {server = addr->servers.elts;for (i = 0; i < addr->servers.nelts; i++) {if (server[i] == cscf) {ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,"a duplicate listen %V",&addr->opt.addr_text);return NGX_ERROR;}}}server = ngx_array_push(&addr->servers);if (server == NULL) {return NGX_ERROR;}*server = cscf;return NGX_OK;
}

ngx_http_add_server 函数的作用是将一个 HTTP 服务器配置 (ngx_http_core_srv_conf_t) 添加到指定的监听地址配置 (ngx_http_conf_addr_t) 的服务器列表中,并确保同一配置不会被重复添加


if (addr->servers.elts == NULL) {if (ngx_array_init(&addr->servers, cf->temp_pool, 4,sizeof(ngx_http_core_srv_conf_t *))!= NGX_OK){return NGX_ERROR;}}

 初始化存储服务器配置的动态数组 ,确保后续可以安全地将新的服务器配置 (cscf) 添加到监听地址 (addr) 的服务器列表中

检查数组是否已初始化
通过判断 addr->servers.elts 是否为 NULL,确定该地址的服务器列表是否已经初始化

addr->servers 是 Nginx 中用于 关联监听地址与虚拟主机配置 的核心数据结构,其本质是一个动态数组(ngx_array_t),存储了指向 ngx_http_core_srv_conf_t 类型(虚拟主机配置)的指针

ngx_http_core_srv_conf_t-CSDN博客

此时 addr->servers.elts 是 NULL

    server = ngx_array_push(&addr->servers);if (server == NULL) {return NGX_ERROR;}*server = cscf;

 将当前的 HTTP 服务器配置(cscf)添加到监听地址(addr)的服务器列表(addr->servers)中

return NGX_OK;

 返回  NGX_OK

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com