Nginx 网络模块编写入门培训
课程是 Nginx 网络模块编程入门的实战课程。
课程将介绍如何编译和使用 Nginx,以及如何使用相关的验证工具。
同时,课程将编写简单的 HTTP 模块和 HTTP 过滤模块,
并在此基础上介绍如何使用自定义变量。
最后,课程将介绍如何使用工具检查编写的模块中是否存在内存问题。
1 如何编译和安装 Nginx
2 Nginx 处理 HTTP 请求和回复的大概流程
3 编写 Nginx 的 HTTP 模块的要点
4 如何将第三方模块编译为动态模块
5 CURL 的常见用法
6 编写 Nginx 的 HTTP 过滤模块的要点
7 如何使用 Nginx 的变量和定时器
8 ASAN 检测 C/C++ 程序的内存问题的方法
1
Nginx 基础知识
1.Nginx发展史
2.Nginx为什么会流行
3.Nginx为什么很高效
4.Nginx常用的架构和模块的分类
5.Nginx进程模型
2
HTTP 协议简介和 CURL 基本用法
1.HTTP协议的发展史及其版本之间的区别
2.Nginx处理HTTP请求和回复的大概流程
3.CURL简介和基本用法
3
编写一个简单的 Nginx HTTP 过滤模块
1.Nginx发送HTTP回复的大概流程
2.Nginx处理HTTP回复的函数指针链表
3.Nginx表示TCP连接的结构体和要用到的成员
4.Nginx的链表数据结构
5.如何在HTTP回复中添加自定义的HTTP头
1
自定义 HTTP 头
1.本挑战要用到的结构体成员
2.Nginx表示HTTP请求中的HTTP头的数据结构
3.如何在HTTP请求中查找自定义的HTTP头
4
Nginx 的变量和定时器
1.Nginx的变量的简介及其分类
2.Nginx的变量的用途
3.Nginx的定时器的简介
4.Nginx的定时器的用途
5
编写一个使用自定义变量的 HTTP 模块
1.Nginx处理HTTP请求的大概流程
2.如何介入Nginx对HTTP请求的处理
3.如何添加一个非set指令定义的自定义变量
6
编写一个使用定时器的 HTTP 模块
1.组织定时器的数据结构
2.Nginx如何管理定时器超时
3.如何使用定时器
7
编写一个介入访问权限阶段的 HTTP 模块
1.Nginx的基本访问权限规则
2.Nginx如何表示HTTP版本号及其有关的结构体和成员
3.如何编写一个模块介入HTTP请求的NGX_HTTP_ACCESS_PHASE阶段
8
将第三方模块编译为 Nginx 支持的动态模块
1.Nginx的动态模块简介
2.动态模块的优势
3.如何将第三方模块编译成动态模块
4.如何加载动态模块
9
使用 AddressSanitizer 检测内存问题
1.常见的内存问题
2.ASAN原理简介及其优势
3.如何使用ASAN