nginx中用到了很多的ctx相关的变量命名,在没有确切意义的情况下,心情变得烦躁。
下面是ngx_module_s结构体的定义。
咨询强哥: ctx可以理解为context的缩写
下面是ngx_module_s结构体的定义。
咨询强哥: ctx可以理解为context的缩写
struct ngx_module_s {
ngx_uint_t ctx_index; //所属分类标识
ngx_uint_t index; //模块计数器
//以下预留成员暂未使用
ngx_uint_t spare0;
ngx_uint_t spare1;
ngx_uint_t spare2;
ngx_uint_t spare3;
ngx_uint_t version; //模块版本
void *ctx; //模块上下文
ngx_command_t *commands; //模块支持的命令集
ngx_uint_t type; //模块的种类
//回调函数
ngx_int_t (*init_master)(ngx_log_t *log); //主进程初始化时调用*/
ngx_int_t (*init_module)(ngx_cycle_t *cycle); //模块初始化时调用
ngx_int_t (*init_process)(ngx_cycle_t *cycle); //工作进程初始化时调用
ngx_int_t (*init_thread)(ngx_cycle_t *cycle); //线程初始化时调用
void (*exit_thread)(ngx_cycle_t *cycle); //线程退出时调用
void (*exit_process)(ngx_cycle_t *cycle); //退出工作进程时调用
void (*exit_master)(ngx_cycle_t *cycle); //退出主进程时调用
//以下预留成员暂未使用
uintptr_t spare_hook0;
uintptr_t spare_hook1;
uintptr_t spare_hook2;
uintptr_t spare_hook3;
uintptr_t spare_hook4;
uintptr_t spare_hook5;
uintptr_t spare_hook6;
uintptr_t spare_hook7;
};