赞
踩
config文件其实是一个可执行的Shell脚本。如果只想开发一个HTTP模块,那么config文件中需要定义以下3个变量:
·ngx_addon_name:仅在configure执行时使用,一般设置为模块名称。
·HTTP_MODULES:保存所有的HTTP模块名称,每个HTTP模块间由空格符相连。在重新设置HTTP_MODULES变量时,不要直接覆盖它,因为configure调用到自定义的config脚本前,已经将各个HTTP模块设置到HTTP_MODULES变量中了,因此,要像如下这样设置:
"$HTTP_MODULES ngx_http_mytest_module"
·NGX_ADDON_SRCS:用于指定新增模块的源代码,多个待编译的源代码间以空格符相连。注意,在设置NGX_ADDON_SRCS时可以使用$ngx_addon_dir变量,它等价于configure执行时--add-module=PATH的PATH参数。
因此,对于mytest模块,可以这样编写config文件:
- ngx_addon_name=ngx_http_mytest_module
- HTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"
- NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_module.c"
注意 以上3个变量并不是唯一可以在config文件中自定义的部分。如果我们不是开发HTTP模块,而是开发一个HTTP过滤模块,那么就要用HTTP_FILTER_MODULES替代上面的HTTP_MODULES变量。事实上,包括$CORE_MODULES、$EVENT_MODULES、$HTTP_MODULES、$HTTP_FILTER_MODULES、$HTTP_HEADERS_FILTER_MODULE等模块变量都可以重定义,它们分别对应着Nginx的核心模块、事件模块、HTTP模块、HTTP过滤模块、HTTP头部过滤模块。除了NGX_ADDON_SRCS变量,或许还有一个变量我们会用到,即$NGX_ADDON_DEPS变量,它指定了模块依赖的路径,同样可以在config中设置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。