nginx-http-echo-moduleC语言开发的原生 Nginx 拓展

联合创作 · 2023-10-01 15:56

nginx-http-echo-module 是使用C语言开发一个原生的Nginx拓展,为了学习Nginx模块和Nginx内核。


nginx_module_echo


使用echo指令输出一个字符串


Nginx 版本


Nginx1.0.10 https://github.com/nginx/nginx/releases/tag/release-1.0.10


开发环境


OS : CentOS Linux release 7.2.1511 (Core)


安装一个干净的 Nginx



  1. 下载 Nginx10.10 并且解压它


  2. 安装gcc和Nginx需要的lib


  3. ./configure --prefix=/usr/local/nginx && make && make install


  4. 运行Nginx



定义模块配置结构


typedef struct {
    ngx_str_t ed;  //该结构体定义在这里 https://github.com/nginx/nginx/blob/master/src/core/ngx_string.h} ngx_http_echo_loc_conf_t;


定义echo模块的指令和参数转化函数



定义模块Context



  1. 定义ngx_http_module_t类型的结构体变量


  2. 初始化一个配置结构体


  3. 将其父block的配置信息合并到此结构体 实现了配置的继承



编写Handler 模块真正干活儿的部分



组合Nginx Module



整理模块代码 按照Nginx官方规范



编写config文件


ngx_addon_name=ngx_http_echo_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_echo_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/src/ngx_http_echo_module.c"

编译安装echo模块


 ./configure --prefix=/usr/local/nginx/ --add-module=/root/ngx_dev && make && make install

安装成功



修改Nginx配置文件测试Module



Nginx echo Module 运行成功


浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报