實戰開發一個Nginx擴展 (Nginx Module)


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
image

開發環境

OS : CentOS Linux release 7.2.1511 (Core)

image
image

安裝一個干凈的 Nginx

  1. 下載 Nginx10.10 並且解壓它
    image

  2. 安裝gcc和Nginx需要的lib
    image
    image

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

  4. 運行Nginx
    image
    image

定義模塊配置結構

typedef struct {
    ngx_str_t ed;  //該結構體定義在這里 https://github.com/nginx/nginx/blob/master/src/core/ngx_string.h
} ngx_http_echo_loc_conf_t;

image

#定義echo模塊的指令和參數轉化函數
image

定義模塊Context

  1. 定義ngx_http_module_t類型的結構體變量
    image
  2. 初始化一個配置結構體
    image
  3. 將其父block的配置信息合並到此結構體 實現了配置的繼承
    image

編寫Handler 模塊真正干活兒的部分

image

組合Nginx Module

image

整理模塊代碼 按照Nginx官方規范

image

編寫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

安裝成功

image

修改Nginx配置文件測試Module

image

Nginx echo Module 運行成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM