慕名对nginx的源码进行学习研究是早在2009年的事情,当时还在学校,整天呆在实验室里看动漫,时间一久就心感愧疚,觉得还是要趁有空学点东西,恰当时不知从哪里得知高性能服务器是一个很有“前途”的方向,几经搜索又机缘偶合的得识lighttpd与nginx,从此开始在动漫与代码之间来回穿梭,直到毕业。
关于lighttpd与nginx,无需多说,当时lighttpd比nginx要火,所以我先看的lighttpd源码,后看的nginx源码,也因此lighttpd的文档在我读书的时候就写完(虽然写得很矬)了,但nginx的文档写了一些放在电脑里,后来离开学校开始工作后,就把这件事情和这些文档都给搁在那了,直到近一年前,我建了一个个人博客站点(http://lenky.info/),为了凑文章数目,才又把它们给找了出来,并且根据最新的nginx源码重新整理了一下,也就是现在你看到的这篇文档。当然,这只是一部分,所以标题才叫《上篇》。
重新整理主要注意到以前写的文档过细的去逐行解析注释代码(网上很多nginx源码分析的文章也大多有这个缺点),而此次希望能从比较高一点的角度去解析nginx,让读者尽快的把握全局而不是陷入细节;为了达到这个目标,文档里就尽量的少贴代码多画图,当然,一些必要的代码是不可缺少的,所以你还是会在本文档里看到源代码。虽然我的个人期望比较好,可惜水平比较矬,目前写出来的文档也就这个样了。
最后,说一下本文档基于的相关环境,虽然列了一个表格如下,其实没那么复杂,我安装的是一个centos 6.2的32位虚拟机,其它开发软件包都是centos 6.2里对应提供的,nginx版本为1.2.0。
软件包 版本
nginx 1.2.0
os CentOS release 6.2 (Final)/kernel-2.6.32/32bit
gcc gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
gdb GNU gdb (GDB) Red Hat Enterprise Linux (7.2-50.el6)
make GNU Make 3.81
该贴由system转至本版2014-9-18 8:34:59