Nginx 源码分析:从模块到配置(下)

2015-05-20
阅读 4 分钟
7.5k
Nginx通过configure决定哪些模块被安装。所有安装的模块在编译阶段静态生成,其指针被统一放入ngx_modules数组中,供全局使用。

Nginx 源码分析:从模块到配置(上)

2015-05-19
阅读 7 分钟
9.4k
本篇的主要目的在于分析Nginx的配置功能。由于Nginx的配置基本就是对模块的配置,因此,在讨论配置功能之前,需要先分析Nginx的模块功能。

Nginx 源码分析:ngx_hash_t(下)

2015-05-16
阅读 9 分钟
5.7k
上篇回顾了hash表的基础概念,分析了Nginx中hash表的内存模型及逻辑模型,从而引出了其核型数据结构ngx_hash_elt_t和ngx_hash_t,并从设计的角度解释了如何初始化这两个结构体。

Nginx 源码分析:ngx_hash_t(上)

2015-05-15
阅读 4 分钟
7.1k
从查询的角度来看,数组根据索引值的查询速度很快快。 原因在于数组内元素的位置是基于数组起始位置的绝对位置,而且数组的存储空间是连续的,可以根据下标直接操作指针跳转。

Nginx 源码分析:ngx_queue_t

2015-05-14
阅读 3 分钟
4.6k
源文件路径 版本:1.8.0 {代码...} 主要作用分析 ngx_queue_t是Nginx提供的双向链表。 通常意义上的双向链表是长成这个样子的: {代码...} 包含三个要素:节点数据data,指向前一个节点的指针prev及指向后一下节点的指针next。 然后就是老生常谈的对于双向链表的创建、插入、删除等等。我就不详说了,自行google即可。 ...

Nginx 源码分析:ngx_list_t

2015-05-14
阅读 4 分钟
4.1k
在本篇中,我们先来分析Nginx是如何造这个轮子的,然后对比说明,ngx_list_t和list有什么不同,最后再分析Nginx作者Igor Sysoev重复造轮子的原因。

Nginx 源码分析:ngx_array_t

2015-05-13
阅读 4 分钟
4.4k
1)ngx_array_t使用ngx_pool_t内存池来管理内存; 2)ngx_array_t虽然有预设数组大小的概念,但是在数组元素超出预设值大小时,会在ngx_pool_t内存池中发生重分配。

Nginx 源码分析:ngx_pool_t

2015-05-13
阅读 5 分钟
5.4k
源代码路径 版本:1.8.0 {代码...} 主要作用分析 提供了一种机制,帮助进行资源管理(内存、文件)。可以类比C++中的RAII机制。 以内存管理为例,通常是手工进行malloc/free,这种做法的优点是灵活、高效,缺点是容易出错,造成内存泄漏以及各种莫名其妙的BUG。 因此,在C/C++中正确的管理内存一直是最棘手的问题。 C++...

使用Python解析nginx日志文件

2015-05-04
阅读 3 分钟
20.4k
项目的一个需求是解析nginx的日志文件。 简单的整理如下: 日志规则描述 首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式: {代码...} 其中一条真实记录样例如下: {代码...} 其中,客户端型号信息用XXXXXXX代替。 项目中已经按照业务规则对Nginx日志文件进行了处理命名规则如下: {代码...} 并且所有的日...