11.8 ngx_cycle_s结构体

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

该结构体是Nginx程序启动过程中使用的主要结构体。Nginx程序启动的核心过程基本上是围绕该结构体开始的。我们在/nginx/src/core/ngx_cycle.h文件中可以找到该结构体的完整定义:

    struct ngx_cycle_s {  
        void                  ****conf_ctx;  
        ngx_pool_t               *pool;  
        ngx_log_t                *log;  
        ngx_log_t                 new_log;  

****conf_ctx,以数组的形式存放所有模块的上下文,每个模块对应于数组中的一个元素。

*pool,指向Nginx程序使用的内存池首地址。

*log和new_log,保存Nginx日志属性和内容。
 

    ngx_connection_t        **files;  
        ngx_connection_t         *free_connections;  
        ngx_uint_t                 free_connection_n;  
        ngx_queue_t                reusable_connections_queue;  

**files,最终指向建立的网络连接列表。

*free_connections和free_connection_n,指向空闲的网络链接和存放空闲链接计数。

reusable_connections_queue,可重用网络连接队列。

    ngx_array_t                 listening;  
       ngx_array_t                  paths;  
       ngx_list_t                   open_files;  
       ngx_list_t                   shared_memory;  

listening,存放监听socket的数组。元素的类型为ngx_listening_t结构体。

paths,存放缓存在磁盘上的路径的数组。元素的类型为ngx_path_t结构体。

open_files和files_n,存放所有打开的文件描述符的列表,保存打开文件的个数。

shared_memory,存放Nginx程序在运行过程中使用的所有共享内存区域的列表。元素的类型为ngx_shm_zone_t结构体。
 

    ngx_uint_t                  connection_n;  
       ngx_uint_t                   files_n;  
       ngx_connection_t             *connections;  
       ngx_event_t                  *read_events;  
       ngx_event_t                  *write_events;  

connection_n,Nginx服务器当前建立的网络连接计数。

*connections,存放Nginx服务器网络连接的链表。ngx_connection_t结构体的定义细节参见本章上一节的相关内容。

*read_events,存放事件驱动模型涉及的读事件。每个网络连接关联一个读事件。ngx_event_t结构体的定义细节参见11.6节的相关内容。

*write_events,存放事件驱动模型涉及的写事件。每个网络连接关联一个写事件。
 

    ngx_cycle_t                 *old_cycle;  
       ngx_str_t                    conf_file;  
       ngx_str_t                    conf_param;  
       ngx_str_t                    conf_prefix;  
       ngx_str_t                    prefix;  
       ngx_str_t                    lock_file;  
       ngx_str_t                    hostname;  
    ;  

*old_cycle,缓存过时的全局信息。

conf_file、conf_param和conf_prefix,存放配置文件的内容、参数及前缀等信息。如果配置是默认的,则直接从Nginx编译后目录中的objs/ngx_auto_conf.h文件加载。

prefix,存放Nginx系统安装的路径。

lock_file,存放Nginx程序的锁文件。

hostname,存放Nginx程序运行所在环境的主机名。

该结构体中存储了Nginx服务器在运行过程中所需的全局变量。我们在后面章节学习Nginx程序实现源码时,还会对该结构体中的重要成员的使用进行详细说明。

本文标签

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

11.8 ngx_cycle_s结构体:等您坐沙发呢!

发表评论

4 + 5 = ?


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

随便看看

0