nginx : ngx_cycle_t结构体

2024-08-24 16:18
文章标签 nginx 结构 cycle ngx

本文主要是介绍nginx : ngx_cycle_t结构体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//我们来看一看这神奇的ngx_cycle_s结构体吧,看一看庐山真面目.
struct ngx_cycle_s {/* 保存着所有模块配置项的结构体指针p,它首先是一个数组,该数组每个成员又是一个指针,这个指针又指向了存储着指针的数组.*/void                  **** conf_ctx ;//内存池ngx_pool_t               * pool ;/*日志模块中提供了生成基本ngx_log_t日志对象的功能,这里的log实际上是在在没有执行ngx_init_cycle方法前,也就是还没有解析配置项前,如果有信息需要输出到日志,就会暂时使用log对象,它会输出到屏幕.在执行ngx_init_cycle方法后,会根据nginx.conf配置文件中的配置项,构造出正确的日志文件,此时会对log重新赋值. */ngx_log_t                * log ;/* 由nginx.conf配置文件读取到日志路径后,将开始初始化error_log日志文件,由于log对象还在用于输出日志到屏幕,这时候new_log将暂时替代log,待初始化成功后,会用new_log的地址覆盖上面的指针.*/ngx_log_t                 new_log ;//下面files数组里元素的总数ngx_uint_t                files_n ;/*对于epoll,rtsig这样的事件模块,会以有效文件句柄树来预先建立这些ngx_connection_t结构体,以加速事件的收集,分发.这时files就会保存所有ngx_connection_t的指针组成的数组,而文件句柄的值用来访问files数组成员. */ngx_connection_t        ** files ;//可用连接池,与free_connection_n配合使用ngx_connection_t         * free_connections ;//连接池的个数ngx_uint_t                free_connection_n ;//可重用的连接队列ngx_queue_t               reusable_connections_queue ;//动态数组,每个成员存储ngx_listening_t成员,表示监听端口以及相关的参数ngx_array_t               listening ;/* 动态数组,保存着nginx所有要操作的目录,如果目录不在,将创建,如果创建失败(例如权限不够),nginx将启动失败.*/ngx_array_t               paths ;/* 单链表容器,元素类型是ngx_open_file_t结构体,他表示nginx已经打开的所有文件.事实上nginx框架不会向open_files链表中添加文件,而是由对此感兴趣的模块向其中添加文件路径名,nginx会在ngx_init_cycle方法中打开这些文件.*/ngx_list_t                open_files ;/* 单链表容器,每一个元素表示一块共享内存*/ngx_list_t                shared_memory ;//当前进程中所有连接对象的总数,于下面的connections成员配合使用.ngx_uint_t                connection_n ;//指向当前进程中多有连接对象ngx_connection_t         * connections ;//指向当前进程中所有读事件ngx_event_t              * read_events ;//指向当前进程中所有写事件ngx_event_t              * write_events ;/* 旧的ngx_cycle_t对象,用于引用上一个ngx_cycle_t对象中的成员.例如 ngx_init_cycle方法在启动初期,需要建立一个临时ngx_cycle_t对象来保存一些变量,再调用ngx_init_cycle方法时,就可以把旧的ngx_cycle_t对象传进去,而这时,这个old_cycle指针就会保存这个前期的ngx_cycle_t对象 */ngx_cycle_t              * old_cycle ;//配置文件相对于安装目录的路径ngx_str_t                 conf_file ;/* nginx处理配置文件时需要特殊处理的在命令行携带的参数,一般是 -g选项携带的参数 */ngx_str_t                 conf_param ;//nginx配置文件路径ngx_str_t                 conf_prefix ;//nginx安装路径ngx_str_t                 prefix ;//用于进程间同步的文件所名称ngx_str_t                 lock_file ;//使用gethostname系统调用得到的主机名ngx_str_t                 hostname ;
};

这篇关于nginx : ngx_cycle_t结构体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102974

相关文章

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

一文详解Nginx的强缓存和协商缓存

《一文详解Nginx的强缓存和协商缓存》这篇文章主要为大家详细介绍了Nginx中强缓存和协商缓存的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、强缓存(Strong Cache)1. 定义2. 响应头3. Nginx 配置示例4. 行为5. 适用场景二、协商缓存(协

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co