资讯专栏INFORMATION COLUMN

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

lixiang / 700人阅读

摘要:实战开发一个扩展地址使用指令输出一个字符串版本开发环境安装一个干净的下载并且解压它安装和需要的运行定义模块配置结构该结构体定义在这里定义模块的指令和参数转化函数定义模块定义类型的结构体变量初始化一个配置结构体将其父的配置信息合并到此结构

实战开发一个Nginx扩展 (Nginx Module) repo地址 https://github.com/wujunze/ng... nginx_module_echo

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

Nginx 版本

Nginx1.0.10 https://github.com/nginx/ngin...

开发环境
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;

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

定义模块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 运行成功

如果这个repo对你有帮助 欢迎star fork Thanks
参考文档

http://wiki.nginx.org/Configu...

http://tengine.taobao.org/book/

http://blog.codinglabs.org/ar...

https://www.nginx.com/resourc...

-------------------------我是分割线-------------------------

硬广时间(对Nginx感兴趣的童鞋可以看下)
Nginx系列课程索引

引子: WebServer与PHP通信姿势
熟悉了解Nginx与PHP是怎么进行通信的

起手式: PHP程序猿应该知道的Nginx (上)
如何更好的使用Nginx和Nginx配置

进阶式: PHP程序猿应该知道的Nginx (中)
深入理解Nginx内核和Nginx运行原理,剖析Nginx高性能的秘密

实战篇: PHP程序猿应该知道的Nginx (下)
百闻不如一run 一起来开发一个Nginx的拓展

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39580.html

相关文章

  • nginx做负载均衡器以及proxy缓存配置

    摘要:这个指令属于模块的,指定后端返回什么样的异常响应时,使用另一个是专门提供负载均衡器内节点的健康检查的外部模块,由淘宝的姚伟斌大神开发,通过它可以用来检测后端的健康状态。 关于nginx的安装和基本配置请参考nginx,本文在原基础上完成以下几个功能: 结合proxy和upstream模块实现nginx负载均衡 结合nginx_upstream_check_module模块实现后端服...

    Moxmi 评论0 收藏0
  • Nginx 最全小白实战教程之一 (安装篇)

    摘要:一环境准备操作系统位版本二安装下载解压新建用户与组组编译配置文件安装重定向支持和支持,如果不需要可以不安装。 一、环境准备 操作系统:Centos6.4 64位 Nginx版本:1.4.2 二、安装Nginx 1.下载 [root@localhost nginx]# cd /usr/local/ [root@localhost nginx]# mkdir nginx [root@l...

    brianway 评论0 收藏0
  • 前端培训-初级阶段-场景实战(2019-06-13)-Nginx代理正确食用方式

    摘要:前端最基础的就是。我这边预期准备进入中级阶段,中间还是会穿插一些实战。语法精确匹配,匹配成功,则停止搜索正则不能有嵌套的。指令会根据在配置文件中出现的顺序依次执行,可以使用来终止接下来的处理。如果以或者或者,则停止处理,立刻重定向。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTM...

    Harpsichord1207 评论0 收藏0
  • 前端培训-初级阶段-场景实战(2019-06-13)-Nginx代理正确食用方式

    摘要:前端最基础的就是。我这边预期准备进入中级阶段,中间还是会穿插一些实战。语法精确匹配,匹配成功,则停止搜索正则不能有嵌套的。指令会根据在配置文件中出现的顺序依次执行,可以使用来终止接下来的处理。如果以或者或者,则停止处理,立刻重定向。 前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTM...

    seanHai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<