从编译与模块框架开始,再沿着一次请求理解变量、路由、上游和缓存。下面按学习顺序整理了 23 篇笔记;也可以直接选择正在排查的模块。
这些文章记录了不同时期的源码阅读与实验,涉及 HTTP、stream 以及传统 GeoIP 等不同模块。实践时请核对目标版本、编译选项与指令上下文;这次整理阅读路线不代表旧文已经按最新版本重新验证。
01 · 编译与源码框架
- Nginx学习笔记
从 configure 与 auto 脚本入手,整理 Nginx 编译过程、模块组织和基础数据结构。
- Nginx模块详解
梳理 Nginx 核心模块与功能模块的组织方式,以及模块结构和编译关联。
- Nginx的http模块代码分析
从 ngx_http.c 的代码框架进入 Nginx HTTP 模块,阅读 http 配置块及初始化逻辑。
- Nginx的http_core模块
围绕 server、location 等配置阅读 HTTP core 模块,梳理核心配置与处理代码。
- Nginx链接自定义静态库
记录自定义静态库的编译打包方式,以及通过 Nginx 编译脚本接入第三方库的步骤。
02 · 变量与请求路由
- Nginx变量详解
区分 Nginx 内置变量与配置变量,结合结构体和源码梳理变量的定义与取值过程。
- Nginx的map模块
梳理 map 输入、输出变量的绑定,以及映射规则解析和取值相关代码。
- Nginx的geo模块
从 geo 指令配置进入源码,分析地址匹配规则的解析与变量计算。
- Nginx的rewrite模块详解
梳理 rewrite、if、break、return 指令与相关源码,理解规则解析和请求改写过程。
- Nginx的return模块
以 stream return 模块为线索,追踪指令解析、处理函数绑定和响应发送过程。
- Nginx的try_files模块
从 try_files 指令解析进入源码,理解候选文件检查与后续 URI 或状态码处理。
03 · 代理、负载均衡与缓存
- Nginx反向代理详解
从 proxy_pass 与 upstream 配置出发,追踪反向代理入口、处理函数绑定及使用注意事项。
- Nginx的upstream模块
结合反向代理实例追踪 upstream 的处理过程、回调函数及其与 proxy 模块的配合。
- Nginx的轮询算法
从 upstream 权重配置进入轮询算法,分析节点初始化、选择与释放的实现。
- Nginx的共享内存详解
结合缓存、限连接和限请求模块,理解 Nginx 共享内存、红黑树与相关结构体。
- Nginx缓存详解
沿 proxy_cache_path 配置梳理缓存键、缓存文件、共享节点与请求命中处理流程。
- Nginx缓存清理
围绕 inactive 与 max_size 参数,分析缓存队列维护和缓存清理相关源码。
04 · 日志、访问控制与扩展
- Nginx日志详解
从 error_log、access_log 配置进入日志源码,串起日志处理流程与关键结构。
- Nginx限流模块详解
从连接数与请求速率限制指令入手,分析限流配置解析和执行流程。
- Nginx的auth_basic模块详解
分析 auth_basic 的配置解析与请求处理函数,理解 HTTP Basic 认证模块的实现。
- Nginx的geoip模块详解
梳理传统 GeoIP 模块的数据库配置、变量注册与请求中的查询处理代码。
- Nginx的header_filter模块
分析 add_header、add_trailer 等指令的配置解析,以及响应头和 trailer 的过滤处理。
- Nginx的mirror模块详解
沿 mirror 指令追踪配置解析、请求体读取与镜像子请求创建,理解模块的处理链路。