11.5.3 ngx_http_conf_addr_t结构体

时间 : 16-03-29 栏目 : nginx专题 作者 : 老薛 评论 : 0 点击 : 724 次

在学习ngx_http_conf_port_t结构体时,我们将监听端口相同的地址存放在一个数组中,数组的每个监听地址配置信息都存放在一个ngx_http_conf_addr_t结构体中,包括监听的所有server块的ngx_http_core_srv_conf_t结构,以及hash、wc_head和wc_tail这些hash结构。该结构体还保存了以server name为key,ngx_http_core_srv_conf_t为value的哈希表,用于快速查找对应虚拟主机的配置信息。该结构体仍然定义在文件/nginx/src/http/ngx_http_core_module.h中:
 

    typedef struct {  
        ngx_http_listen_opt_t       opt;  
        ngx_hash_t                hash;  
        ngx_hash_wildcard_t       *wc_head;  
        ngx_hash_wildcard_t       *wc_tail;  
        //the default server configuration for this address:port  
        ngx_http_core_srv_conf_t  *default_server;  
        ngx_array_t                servers;             //ngx_http_core_srv_conf_t 结构数组  
    } ngx_http_conf_addr_t;  

ngx_http_listen_opt_t重放监听socket的配置信息。

hash、*wc_head、*wc_tail完成了对哈希表的定义。该哈希表以server_name作为键(key),以ngx_http_core_srv_conf_t结构为值(value)。其中,hash哈希表中的server_name不包括通配符;*wc_head指向的哈希表中,server_name包含前缀通配符;*wc_ tail指向的哈希表中,server_name包含后缀通配符。

如果我们的Nginx服务器支持正则表达式,则该结构体中还包括另外两个成员:
 

    #if (NGX_PCRE)  
        ngx_uint_t                  nregex;  
        ngx_http_server_name_t      *regex;  
    #endif 

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/nginx-2/1563.html

11.5.3 ngx_http_conf_addr_t结构体:等您坐沙发呢!

发表评论

6 + 9 = ?


博主微信号,很高兴为您提供帮助

随便看看

0