Nginx 基本数据结构

概述

在学习 Nginx 之前首先了解其基本的数据结构是非常重要的,这是入门必须了解的一个步骤。本节只是简单介绍了 Nginx 对基本数据的一种封装,包括 基本整型数据类型、字符串数据类型、缓冲区类型以及 chain 数据类型。

基本数据类型

整型数据






typedef intptr_t        ngx_int_t;
typedef uintptr_t       ngx_uint_t;
typedef intptr_t        ngx_flag_t;



#if __WORDSIZE == 64
# ifndef __intptr_t_defined
typedef long int		intptr_t;
#  define __intptr_t_defined
# endif
typedef unsigned long int	uintptr_t;
#else
# ifndef __intptr_t_defined
typedef int			intptr_t;
#  define __intptr_t_defined
# endif
typedef unsigned int		uintptr_t;


字符串类型

内存池类型

内存池类型即是 ngx_pool_t ,有关内存池的讲解可参考前文《Nginx 内存池管理

缓冲区数据类型

缓冲区 ngx_buf_t 的定义如下:

chain 数据类型

ngx_chain_t 数据类型是与缓冲区类型 ngx_buf_t 相关的链表结构,定义如下:

链表图如下:

参考资料:

《深入理解 Nginx 》

Nginx 从入门到精通

Nginx 代码研究

Last updated

Was this helpful?