nginx
zccracker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Nginx定时器的实现及定时事件的使用
nginx提供一套高效的定时器实现,除了nginx核心能够使用定时器以外,我们在进行模块开发的时候也可以使用定时器来完成一些定时执行的任务。nginx定时器实现的核心是使用一棵红黑树来存储各个定时事件,每次循环的时候就从这棵树里找出超时的事件,然后一一触发,完成定时任务操作。下面简单的描述一下nginx在实现定时器时的几个关键点。本文是基于linux的epoll来描述的定时器实现。转载 2014-05-05 16:57:31 · 594 阅读 · 0 评论 -
Nginx基本数据结构之ngx_str_t
nginx的作者为追求极致的高效,自己实现了很多颇具特色的nginx风格的数据结构以及公共函数。比如,nginx提供了带长度的字符串,根据编译器选项优化过的字符串拷贝函数ngx_copy等。所以,在我们写nginx模块时,应该尽量调用nginx提供的api,尽管有些api只是对glibc的宏定义。本节,我们介绍string、list、buffer、chain等一系列最基本的数据结构及相关api的使转载 2014-06-06 15:31:29 · 525 阅读 · 0 评论 -
nginx源码分析—内存池结构ngx_pool_t及内存管理
Content0. 序1. 内存池结构1.1 ngx_pool_t结构1.2 其他相关结构1.3 ngx_pool_t的逻辑结构2. 内存池操作2.1 创建内存池2.2 销毁内存池2.3 重置内存池2.4 分配内存2.4.1 ngx_palloc()函数分析2.4.2 ngx_palloc_block(转载 2014-07-01 14:36:20 · 493 阅读 · 0 评论 -
nginx源码分析—hash结构
Content0.序1.hash结构1.1ngx_hash_t结构1.2ngx_hash_init_t结构1.3ngx_hash_key_t结构1.4hash的逻辑结构2.hash操作2.1NGX_HASH_ELT_SIZE宏2.2hash函数2.3hash初始化2.4hash查找3.一个例子3转载 2014-07-03 10:41:36 · 455 阅读 · 0 评论 -
“惊群”,看看nginx是怎么解决它的
在说nginx前,先来看看什么是“惊群”?简单说来,多线程/多进程(linux下线程进程也没多大区别)等待同一个socket事件,当这个事件发生时,这些线程/进程被同时唤醒,就是惊群。可以想见,效率很低下,许多进程被内核重新调度唤醒,同时去响应这一个事件,当然只有一个进程能处理事件成功,其他的进程在处理该事件失败后重新休眠(也有其他选择)。这种性能浪费现象就是惊群。惊群通常发生转载 2014-07-04 15:26:41 · 347 阅读 · 0 评论 -
nginx核心进程模型
一、Nginx整体架构正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程。一个较为完整的整体框架结构如图所示:二、核心进程模型启动nginx的主进程将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。ng转载 2014-07-30 13:45:05 · 456 阅读 · 0 评论 -
Nginx学习之十-超时管理(定时器事件)
Nginx事件管理主要是网络事件和定时器事件。下面介绍定时器事件管理,即超时管理。为什么要进行超时管理Nginx有必要对可能发生超时的事件进行统一管理,并在事件超时时作出相应的处理,比如回收资源,返回错误等。举例来说,当客户端对nginx发出请求连接后,nginx机会accept()并建立对应的连接对象、读取额护短请求的头部信息。而读取这个头部信息显转载 2014-05-05 17:21:50 · 520 阅读 · 0 评论
分享