一篇文章读透nginx源码

Nginx就像一辆高性能的汽车,Nginx二进制可执行文件是发动机(可更换,即热部署),Nginx.conf配置文件就是驾驶舱,access.log就是行车记录仪,而error.log便是黑匣子 。

一篇文章读透nginx源码

文章插图
 
一、源码目录下面我们先看下Nginx的目录结构:
Nginx的源码主要分布在src/目录下,而src/目录下主要包含三部分比较重要的模块 。
core:包含了Nginx的最基础的库和框架 。包括了内存池、链表、hashmap、String等常用的数据结构 。
event:事件模块 。Nginx自己实现了事件模型 。而我们所熟悉的Memcached是使用了Libevent的事件库 。自己实现event会性能和效率方便更加高效 。
http:实现HTTP的模块 。实现了HTTP的具体协议的各种模块,该部分内容量比较大 。
【一篇文章读透nginx源码】 
二、Nginx进程结构
Nginx是一款多进程的软件 。Nginx启动后,会产生一个master进程和N个工作进程 。其中nginx.conf中可以配置工作进程的个数:
worker_processes 1;
多进程模块有一个非常大的好处,就是不需要太多考虑并发锁的问题 。
我们常见的软件Memcached就和Nginx相反,就是典型的多线程模型的C语言软件 。
一篇文章读透nginx源码

文章插图
 
三、Nginx架构图


    推荐阅读