前述
Nginx: 1.21.7
Os: unix
简单了解项目目录结构
auto
项目编译相关脚本
conf
项目配置
contrib
项目贡献
docs
项目文档
misc
杂项
src
项目源码
core
核心模块
event
事件模块,主要用于实现Nginx不同事件的处理逻辑
http
http服务模块,主要用于http服务的详细处理逻辑
mail服务模块,主要用于mail服务的详细处理逻辑
misc
杂项
os
系统模块,主要处理相同逻辑在不同系统下的交互流程
stream
stream服务模块,主要用于stream服务的详细处理逻辑
粗读项目处理流程
阅读思路
- 寻找main入口
- if判断流程暂不涉及内部详细处理流程,可先通过方法名猜测内部逻辑(方法名有歧义或不清晰的可以进入下一级简单了解内部逻辑)
- 画图分析项目架构设计思路及核心逻辑
- 粗读核心逻辑
核心逻辑梳理(简版)
- Nginx源码之main
- Nginx源码之ngx_master_process_cycle
- ngx_worker_process_cycle
细读项目核心处理流程
阅读思路
- 针对粗读的项目架构,拆解核心方法的内部逻辑
- 善用全局搜索
- 善用man命令查看系统函数
- 学习项目架构设计模式
核心逻辑梳理(详细版)
- 事件处理流程
- 模块处理流程
补充阅读:
《NGINX源码阅读》
《Nginx HTTP请求处理流程》
By佐柱
转载请注明出处,也欢迎偶尔逛逛我的小站,谢谢 :)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。