实战开发一个 Nginx 扩展(Nginx Module)

发布于 2021-07-24 15:29:06 字数 3299 浏览 1686 评论 0

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

下载 Nginx10.10 并且解压它

安装 gcc 和 Nginx 需要的 lib

./configure —prefix=/usr/local/nginx && make && make install

运行 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;

定义模块 Context

定义 ngx_http_module_t 类型的结构体变量

初始化一个配置结构体

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

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

组合 Nginx Module

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

编写 config 文件

ngx_addon_name=ngx_http_echo_module
HTTP_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 运行成功

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

遂心如意

文章 0 评论 0

5513090242

文章 0 评论 0

巷雨优美回忆

文章 0 评论 0

junpengz2000

文章 0 评论 0

13郎

文章 0 评论 0

qq_xU4RDg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文