ngx_conf_s
《Nginx高性能Web服务器详解》第11章Nginx基本数据结构,本章开始,我们学习Nginx源码的具体实现。学习体系错综复杂、功能服务实现丰富的Nginx服务器源码,应该从整个源码体系赖以存在的基本元素--数据结构开始学起。本节为大家介绍ngx_conf_s结构体。
作者:苗泽来源:电子工业出版社|2013-12-02 11:43
收藏
分享
11.9 ngx_conf_s结构体
该结构体用于Nginx在解析配置文件时描述每个指令的属性,也是Nginx程序中非常重要的一个数据结构,我们在/nginx/src/core/ngx_conf_file.h文件中可以找到它的定义:
- struct ngx_conf_s {
- char *name;
- ngx_array_t *args;
- ngx_cycle_t *cycle;
- ngx_pool_t *pool;
- ngx_pool_t *temp_pool;
- ngx_conf_file_t *conf_file;
- ngx_log_t *log;
- void *ctx;
- ngx_uint_t module_type;
- ngx_uint_t cmd_type;
- ngx_conf_handler_pt handler;
- char *handler_conf;
- };
*name,存放当前解析到的指令。
*args,存放该指令包含的所有参数。
*cycle,参见11.8节"ngx_cycle_s结构体"。
*pool,参见11.4节"ngx_pool_s结构体"。
*temp_pool,用于解析配置文件的临时内存池,解析完成后释放。其结构体类型的细节参见11.4节"ngx_pool_s结构体"。
*conf_file,存放Nginx配置文件的相关信息。ngx_conf_file_t结构体的定义我们在该文件中也能找到:
- typedef struct {
- ngx_file_t file; //文件的属性
- ngx_buf_t *buffer; //文件的内容
- ngx_uint_t line; //文件的行数
- } ngx_conf_file_t;
*log,描述日志文件的相关属性。
*ctx,描述指令的上下文。
module_type,支持该指令的模块的类型,core、http、event和mail中的一种。
cmd_type,指令的类型。
handler,指令自定义的处理函数。
*handler_conf,自定义处理函数需要的相关配置。
ngx_conf_s相关推荐
- 负载均衡Load Balance学习
目录 1. 负载均衡简介 2. 负载均衡算法 3. Nginx负载均衡调度算法源码调研 1. 负载均衡简介 0x1: 负载均衡是什么 负载均衡是一种技术架构方法,它并不是具体指哪一种技术,也正是因为这 ...
- Nginx源码分析:3张图看懂启动及进程工作原理
图一:nginx 启动及内存申请过程分析 任何程序都离不开启动和配置解析.ngx 的代码离不开 ngx_cycle_s 和 ngx_pool_s 这两个核心数据结构,所以我们在启动之前先来分析下. 内 ...
- nginx源码分析—内存池结构ngx_pool_t及内存管理
本博客( http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究.学习内容所做的笔记,欢迎广大朋友指正! Content 0.序 1.内存池结构 1.1 ...
- nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
最近在开始看nginx的事件模块,经常看到ngx_cycle_t.ngx_connection_t和ngx_listening_t这三个结构体,刚开始没在意,看到了就重新上网变量的意思,后来觉得不弄懂 ...
- nginx html解析插件,nginx配置信息的解析流程
nginx配置信息的解析流程 2011年9月9日 1,744 次浏览 请关注最新修正合订: 这一系列的文章还是在09年写的,存在电脑里很久了,现在贴出来.顺序也不记得了,看到那个就发那个吧,最近都会发 ...
- nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
最近在开始看nginx的事件模块,经常看到ngx_cycle_t.ngx_connection_t和ngx_listening_t这三个结构体,刚开始没在意,看到了就重新上网变量的意思,后来觉得不弄懂 ...
- nginx详细文档 – 安装配置,深入源码,模块编写,编译器参数,系统函数
nginx文档 吴东 April 28, 2009 Contents 1前言 5 2基本配置 7 2.1安装------- 7 2.2配置说明------. 10 2.3启动和控制------ 25 ...
- nginx配置解析之缓冲区管理
nginx服务器的master进程在解析nginx.conf时,会使用一个4k大小的缓存区存放部分配置文件信息.nginx会从配置文件中读取4k大小的内容到缓冲区,之后对缓冲区中的内容进行逐个字符扫描 ...
- nginx配置解析流程
上一篇文章分析了nginx配置文件缓冲区的管理,接下来将详细分析nginx是如何解析配置文件的.包含模块上下文结构的创建.core核心模块的解析.event事件模块的解析.http模块的解析. 一.模 ...
最新文章
- 远程办公难?实战经验为你打消4大顾虑
- SSH实现分页查询(转)
- Java Spring源代码学习之how is bean scanned - did not answer when this.beanDefinitionNames is filled
- runtime_mysql_users_proxysql的配置系统
- 一起等补丁:操作系统漏洞StrandHogg 2.0几乎影响所有安卓设备
- 使用Keras打造一个实时可用交通标志识别App
- 乔布斯的这 3 个故事依然激励着我
- java中的变量是什么
- 腾讯校招 针对找工作的小伙伴们
- 前端找实习岗的7条建议
- 联想笔记本重装系统无法进入记录
- ISO26262-道路车辆功能安全
- Think Python 2e 中文版
- 微信小程序--优购页面制作
- 应用安全系列之二十九:密码管理
- mysql命令大全(转)
- 个性化推荐系统设计(3.1)——如何评价个性化推荐系统的效果
- 隐马尔可夫模型(Baum Welch算法与Viterbi算法)
- 令人头疼的背包九讲(1)0/1背包问题
- FL Studio水果简体中文20.9版本下载
热门文章
- 常用 API 函数(3): 文件处理函数
- 实现ISA Server 2006物理机到VMware ESX 4虚拟机的迁移
- HDU - 4565 So Easy!(共轭构造+推公式+矩阵快速幂)
- angularjs全栈开发知乎_1-4【微信小程序全栈开发课程】原生小程序框架介绍
- javascript核心_javascript核心之DOM操作
- c/c++ 两种文件流用法
- ESP8266开发笔记
- 在Linux中安装R语言包,遇到无法验证下列签名的错误
- 关于欧拉工程的一道递推题
- hdu4746(莫比乌斯反演)