
Welcome to My Blog
欢迎来到我的博客!
Nginx 源码解析(十二):模块系统与动态加载
··11 分钟
系列开篇就说过,Nginx 的所有功能都是模块提供的。前面的文章你看到了 HTTP 模块、Event 模块、Upstream 模块在各自领域的工作方式,这一篇把视角收回到模块系统本身:模块长什么样,静态模块怎么初始化,动态模块怎样通过 dlopen 加载。
重点看四件事:ngx_module_t 字段、ngx_modules.c 生成逻辑、ngx_count_modules() 的索引分配、ngx_load_module() 的加载路径,以及 commands 数组怎样驱动配置解析器。
Nginx 源码解析(十一):线程池与异步 IO
Nginx 以事件驱动模型闻名,核心 worker 进程是一个单线程事件循环。但网络 I/O 之外还有一类阻塞操作,磁盘 I/O、gzip 压缩、SSL 握手,它们会卡住整个事件循环。这篇我们从源码角度拆解 Nginx 1.24.x 如何用线程池和异步 I/O 两条路径来解决这个矛盾。