nginx 常见的结构体
来源:互联网 发布:电子相册软件免费版 编辑:程序博客网 时间:2024/06/07 12:30
nginx结构体习惯定义为_s,然后使用typedef转换为_t,如typedef struct ngx_array_s ngx_array_t
ngx_array_t结构体
struct ngx_array_s { void *elts; ngx_uint_t nelts; size_t size; ngx_uint_t nalloc; ngx_pool_t *pool;};
下面分别说明各字段的含义:
elts: 指向实际的数据存储区域;
nelts: 数组实际元素个数。
size: 数组单个元素的大小,单位是字节。
nalloc: 数组的容量。表示该数组在不引发扩容的前提下,可以最多存储的元素的个数。当nelts增长到达nalloc 时,如果再往此数组中存储元素,则会引发数组的扩容。数组的容量将会扩展到原有容量的2倍大小。实际上是分配新的一块内存,新的一块内存的大小是原有内存大小的2倍。原有的数据会被拷贝到新的一块内存中。
pool:该数组用来分配内存的内存池。
ngx_str_t结构体
在nginx源码目录的src/core下面的ngx_string.h|c里面,包含了字符串的封装以及字符串相关操作的api。nginx提供了一个带长度的字符串结构ngx_str_t,它的原型如下:
typedef struct { size_t len; u_char *data;} ngx_str_t;
ngx_cycle_s结构体
该结构体是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 常见的结构体
- nginx的常见功能
- Nginx的http配置结构体的组织结构
- Nginx的http配置结构体的组织结构
- Nginx的红黑树结构
- Objective-C 常见的结构体
- 常见的树结构
- nginx : ngx_cycle_t结构体
- 安装nginx常见的几个问题
- nginx常见的启动错误
- 常见的nginx扩展安装
- 常见的nginx扩展说明
- Nginx常见的优化策略
- CListCtrl 常见结构体
- CTreeCtrl常见结构体
- 常见结构体...
- 结构体常见错误
- nginx 代码的目录结构
- Flume架构以及应用介绍
- Android 头像透明背景不透明效果
- linux 安装opencv3.3的坑
- Kotlin編程when文
- Android 序列化的作用和使用场景
- nginx 常见的结构体
- 数据库安全的5个基本实践
- 53-多重继承(上)
- Android APP地图与业务交互解耦框架实现
- 一个简单的静态web服务器实现
- SSH配置使用证书登录
- linux下载安装禅道
- 斐波那契数列 logn
- tensorflow使用inception_v3网络和权重进行图片分类(19)---《深度学习》