武侠世界的高手一般都是从扫地僧做起的,程序员学一门技术都是从hello world开始。
本文介绍开发一个简单的hello world模块。
(一)如何将自己的http模块编译进Nginx
首先创建源码目录:
mkdir /home/zhangxiao/nginx/nginx-1.0.15/src/test/
在编译Nginx之前,执行configure脚本时,添加--add-module=PATH
例如:
./configure --add-module=/home/zhangxiao/nginx/nginx-1.0.15/src/test
1.编写config文件
config文件在上述目录中,这个文件将通知如何编译本模块。
config文件其实是一个可执行的Shell脚本,如果只想开发一个HTTP模块,需要定义三个变量:
(1)ngx_adon_name
仅在configure执行时使用,一般设置为模块名称。
(2)HTTP_MODULES
保存所有的HTTP模块名称。每个模块间由空格相连。在重新设置这个变量时,不要直接覆盖,因此要如下设置:
"$HTTP_MODULES ngx_http_mytest_module"
(3)NGX_ADDON_SRCS
用于指定新模块的源代码,多个待编译的源代码之间可以用空格相连。
注意,在设置这个变量时可以使用$ngx_addon_dir变量,它等价于configure执行时–add-module=PATH的PATH参数
因此,我们的config文件如下:
ngx_addon_name=ngx_http_mytest_module
HTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"
NGX_ADDON_SRCS