-
Nginx命令结构 的惯例:struct定义结构时,以-s作为后缀;typedef定义的别名,以-t作为后缀。
-
ngx_module_s结构:
-
作用:
-
每个模块对应一个该结构体变量。
-
该结构描述了模块的基本属性。
-
-
组织:
-
objs/ngx_module.c文件中的ngx_modules结构数组中,包含了快速编译后,所有模块的声明。
-
-
-
ngx_command_s结构:
-
作用:
-
每个配置指令对应一个该结构体变量。
-
解析配置文件中的指令时,以该结构作为依据。
-
-
组织:
-
每个模块支持的所有配置命令,包含在ngx_command_s结构数组中。
-
ngx_module_s结构中的commands成员指向该结构数组。
-
-
-
ngx_pool_s结构:
-
作用:
-
Nginx对内存的管理是通过自身实现的内存池来完成的。
-
内存池是链表结构。
-
ngx_pool_s描述内存池的管理分配。
-
-
组织:
-
目前还不清楚。
-
-
-
Nginx socket相关的数据结构:
-
ngx_listening_s结构:
-
作用:
-
描述Nginx服务器运行过程中,使用的网络套接字socket的详细属性信息。
-
-
组织:
-
每个该结构对应多个虚拟主机。???
-
疑问:为什么不是每个结构对应一个虚拟主机。
-
-
对应一个ngx_connection_s结构。
-
疑问:每个监听套接字不是应该对应多个已连接套接字吗???
-
-
-
-
ngx_http_conf_port_t结构:
-
作用:
-
描述监听端口的配置信息。
-
-
组织:
-
存放有监听端口,以及所有监听地址的数组。
-
-
-
ngx_http_conf_addr_t结构:
-
作用:
-
目前还不清楚。
-
-
-
-
ngx_event_s结构:
-
作用:
-
存储了网络连接IO状态的详细信息。
-
-
组织:
-
所有的ngx_event_s结构体构成了两个全局链表:
-
完成连接读操作的描述。
-
完成连接写操作的描述。
-
-
-
-
ngx_connection_s结构:
-
作用:
-
描述一个网络连接。一个网络连接对应一个ngx_connection_s结构。
-
-
-
ngx_cycle_s结构:
-
作用:
-
Nginx程序启动过程中使用的主要结构体。
-
存储了Nginx服务器运行过程中所需的全局变量。
-
-
组织:
-
conf_ctx: 以数组形式存放所有模块的上下文。啥信息???
-
pool: 内存池首地址。
-
files: 最终指向建立的网络连接列表。类型为ngx_connection_s结构。与下文connections的关系是什么???
-
free_connections: 空闲的网络连接???
-
listening: 存放监听socket的数组,元素类型为ngx_listening_s结构。指的是监听套接字吗???
-
connections: 存放Nginx服务器网络连接的链表。ngx_connection_s结构。指的是已连接套接字吗???
-
read_events: ngx_event_s结构的链表头。描述每个网路连接的读事件。
-
write_events: ngx_event_s结构的链表头。描述每个网路连接的写事件。
-
-
-
ngx_conf_s结构:
-
作用:
-
在Nginx解析配置文件时,描述每个指令的属性。
-
-
-
ngx_signal_t结构:
-
作用:
-
存放信号信息。
-
-
组织:
-
Nginx服务器所有可能遇到的信号保存在ngx_signal_t结构数组中。(src/oc/unix/ngx_process.c文件中的signals变量。)
-
-
-
ngx_process_t结构:
-
作用:
-
存放工作进程信息,每个工作进程对应一个该结构变量。
-
-
组织:
-
结构数组。
-
-