ngxin 添加模块

if test -n "$NGX_ADDONS"; then

    echo configuring additional modules

    for ngx_addon_dir in $NGX_ADDONS
do
echo "adding module in $ngx_addon_dir" if test -f $ngx_addon_dir/config; then
. $ngx_addon_dir/config echo " + $ngx_addon_name was configured" else
echo "$0: error: no $ngx_addon_dir/config was found"
exit
fi
done
fi

./configure 文件中对自定义模块的处理

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"

增加一个自定义模块的config文件实例

if [ $HTTP = YES ]; then
modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
$HTTP_HEADERS_FILTER_MODULE \
$HTTP_AUX_FILTER_MODULES \
$HTTP_COPY_FILTER_MODULE \
$HTTP_RANGE_BODY_FILTER_MODULE \
$HTTP_NOT_MODIFIED_FILTER_MODULE" NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
fi

模块在 ngx_modules.c中的顺序

ngx_modules 是非常关键的数组,它指明了每个模块在Nginx中的优先级,当一个请求同时符合多个模块的处理规则时,将按照数组中的顺序选择最靠前的模块优先处理。对于HTTP过滤模块而言则是相反的,因为HTTP框架在初始化时,会在ngx_modules数组中将过滤模块按先后顺序向过滤链表中添加,但每次都是添加到链表的表头,因此,对HTTP过滤模块而言,在ngx_modules数组中越靠后的模块反而会首先处理HTTP响应。因此ngx_modules中模块的先后顺序非常重要,不正确的顺序会导致Nginx无法正常工作!

上一篇:RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser


下一篇:EntityFramework4.5使用Expression类创建动态查询及动态查询导航属性