带注释源码php,(个人开源)nginx源码注释

本文详细介绍了一项关于个人开源的Nginx源码注释,涵盖核心模块、进程模型、事件处理、编译选项及关键技术点,如HTTP请求处理阶段、日志系统和内存池管理。

地址

https://github.com/langsim/nginx-1.6.2-comment

简介

希望完成一份高可读性的nginx源码注释。

不会注释的内容spdy相关代码,因为spdy已经被http2取代.

线程相关代码,因为至少在1.6.2版本nginx的线程还处在实验性阶段.

linux之外其他平台的代码.

epoll之外其他事件模型的代码

gcc之外其他编译器的代码.

mail相关的代码.

完成程度core目录 60%

event目录 20%

http目录 10%

os目录 80%

函数链表http filter模块之间,ngx_http_top_header_filter和ngx_http_top_body_filter会形成两个函数链表, 链表中函数的调用顺序会和对应模块在ngx_modules数组的顺序相反。

http请求处理的11个阶段中很多阶段都可以多个回调函数,同一个阶段的回调函数之间调用顺序和对应模块在ngx_modules数组里的顺序相同。

日志

nginx默认有两个log文件:access.log: 每一个http请求会在里面产生一行记录。

error.log: nginx运行时的一些常规,错误或调试日志。

进程模型

nginx启动后可能出现四种进程状态:单进程前台运行

单进程守护进程模式

一个master进程,一个(或多个)worker进程,一个(或0个)cachemanager进程和一个(或0个)cacheloader进程共同在前台运行

一个master进程,一个(或多个)worker进程,一个(或0个)cachemanager进程和一个(或0个)cacheloader进程在守护进程状态下运行。

master进程在启动是用于启动其他进程,启动完成后用于管理其他进程。

woker进程,用于实际处理链接请求。

cachemanager进程用于按要求清理cache文件。

cacheloader进程在启动时会将cache目录里符合条件的cache文件在内存里建立索引,不符合要求的cache文件清除,然后退出。

启动后给正在运行的nginx的主进程发信号,然后退出。

进程运行状态的切换重载配置文件(reload)

热升级可执行文件

编译

nginx的编译与linux平台常规开源软件的编译方式相同,都是运行./configure && make && make install, 在./configure后可加入自己的自定义选项。

nginx使用信号TERM, INT 快速关闭

QUIT 从容关闭

HUP 平滑重启,重新加载配置文件

USR1 重新打开日志文件,在切割日志时用途较大

USR2 平滑升级可执行程序

WINCH 从容关闭工作进程

nginx内存池

nginx有两个内存池在共享内存上分配内存用的内存池

在普通内存上申请内存用的内存池,目的是高效的利用内存

nginx使用到的计算hash算法crc32

crc16

sha1

murmurhash

md5

nignx进程通信与同步共享内存的使用

信号

unix套接字').addClass('pre-numbering').hide();

$(this).addClass('has-numbering').parent().append($numbering);

for (i = 1; i <= lines; i++) {

$numbering.append($('

').text(i));

};

$numbering.fadeIn(1700);

});

});

以上就介绍了(个人开源)nginx源码注释,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值