struct ngx_module_s {
ngx_uint_t ctx_index;
ngx_uint_t index;
……
};
index : 是所有模块在ngx_modules.c文件中的ngx_modules数组中的序号,它与ngx_modules数组中所有模块的顺序是一致的。
ngx_max_module =0;
for(i=0; ngx_modules[i]; i++)
{
ngx_modules[i]->index = ngx_max_modules++;
}
ngx_max_modules 是Nginx模块的总个数。
注意一点是: Nginx各模块在ngx_modules数组中的顺序是很重要的,依靠index成员,每一个模块才可以把自己的位置和其他模块进行比较,并以此决定行为。
同时,Nginx又允许再次定义子类型, ctx_index表明了模块在相同类型模块中的顺序
ngx_event_max_module =0;
for(i=0; ngx_modules[i]; i++)
{
if(ngx_modules[i]->type != NGX_EVENT_MODULE)
{
continue;
}
ngx_modules[i]->ctx_index = ngx_event_max_module++;
}
其中,ngx_event_max_module是编译进Nginx的所有事件模块的总个数。
总的来说,index就是该模块在所有Nginx模块中的序号, ctx_index是该模块在同一类模块中的序号。
本文分享自 nginx遇上redis 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!