码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-15 20:37:57      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:lan   code   lob   module   ref   conf   解压   配置文件   struct   

repo地址 https://github.com/wujunze/nginx-http-echo-module

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_module #千锋PHP-PHP培训的实力派
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 运行成功

技术分享

 

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

标签:lan   code   lob   module   ref   conf   解压   配置文件   struct   

原文地址:http://www.cnblogs.com/gaohj/p/7019712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!