實戰開發一個Nginx擴展 (Nginx Module)
阿新 • • 發佈:2017-06-15
初始 mage 塊代碼 src mas block 版本 部分 install
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
-
下載 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 #千鋒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)