可乐爱上咖啡

致力于高性能服务器和小众语言的研究-个人笔记杂货摊

Nginx源码分析-connections数组

本文的标题让我纠结了好久,不知道是connections数组合适,还是connections链表更合适;Nginx在此或多或少的注入了二者的特点,先不管是叫数组还是叫链表吧,只要能够弄明白这个connections是怎么回事就大功告成。Nginx的每个worker进程都使用一个相同的connect...

2010-11-28 19:22:00

阅读数:3941

评论数:2

Nginx源码分析-事件循环

事件循环这个概念貌似在windows编程中提得更多,Linux程序却很少提及这个概念。本文所提及的事件循环其实就是worker cycle,由于此处将关注的不再是worker进程,而是worker进程在循环过程中关于事件处理的环节,因此就盗用了事件循环这个概念。在具体看代码前,先看一下这个“循环”...

2010-11-21 22:02:00

阅读数:5288

评论数:2

Nginx源码分析-事件驱动的初始化

Nginx的高性能应该算是事件驱动的功劳。Nginx事件处理的相关代码位于src/event目录中,事件驱动是Nginx的核心,所以代码量相对也比较大。事件驱动初始化的过程主要由下图中的三步组成。

2010-11-21 22:00:00

阅读数:5018

评论数:0

Nginx源码分析-master和worker进程间的通信

前面单独分析了master进程和worker的工作情况,本文就大概看一下master进程和worker进程之间是如何使用channel来完成通信的。这部分实现的源码主要分布于src/os/unix/channel.h和channel.c两个文件中。实现极其简单,没有什么复杂的逻辑。下面,我绘制了一...

2010-11-17 14:08:00

阅读数:9473

评论数:1

Nginx源码分析-进程管理之worker进程

上一篇博文分析了master进程,本文着手分析一下worker进程的情况。首先找到worker进程的入口地方——ngx_worker_process_cycle。这个函数不光是worker进程的入口函数,同时也是worker进程循环工作的主体函数,看函数名含有一个cycle嘛。进入这个cycle函...

2010-11-16 22:29:00

阅读数:5079

评论数:4

Nginx源码分析-进程管理之master进程

Nginx虽然有着多种进程模型,但生产环境一般都是用master-worker模型来工作。本文着重分析Nginx的master进程做了哪些事情,它是如何管理好各个worker进程的。我们知道在main函数中完成了Nginx启动初始化过程,启动初始化过程中的一个重要环节就是解析配置文件,回调各个配置...

2010-11-11 09:44:00

阅读数:6829

评论数:1

Nginx源码分析-启动初始化过程(二)

在Nginx启动初始化过程(一)中提到main函数会调用ngx_init_cycle()初始化一个全局cycle变量,本文就来看看这个ngx_init_cycle()函数究竟做了哪些初始化工作。ngx_cycle_t结构类型被定义在src/core/ngx_cycle.h文件中,多达23个成员变量...

2010-11-07 17:26:00

阅读数:5253

评论数:2

Nginx源码分析-启动初始化过程(一)

Nginx的启动初始化在src/core/nginx.c的main函数中完成,当然main函数是整个Nginx的入口,除了完成启动初始化任务以外,也必定是所有功能模块的入口之处。Nginx的初始化工作主要围绕一个类型为ngx_cycle_t类型的全局变量(cycle)展开。下面具体看一下main函...

2010-11-04 17:02:00

阅读数:4387

评论数:3

提示
确定要删除当前文章?
取消 删除
关闭
关闭