11.1.3 模块上下文

时间 : 16-03-29 栏目 : nginx专题 作者 : 老薛 评论 : 0 点击 : 902 次

结构体中,指向模块上下文结构的指针类型为void,这说明不同模块的模块上下文结构不同。实际情况确实是这样的,Nginx服务器程序根据不同的模块类型定义了不同的模块上下文结构。

最常见到和使用的是HTTP类模块的模块上下文结构体ngx_http_module_t:
 

    typedef struct {  
                                                            //解析http块时调用  
        ngx_int_t   (*preconfiguration)(ngx_conf_t *cf);      
        ngx_int_t   (*postconfiguration)(ngx_conf_t *cf);  
                                                            //解析main块时调用  
        void       *(*create_main_conf)(ngx_conf_t *cf);  
        char       *(*init_main_conf)(ngx_conf_t *cf, void *conf);  
                                                            //解析server块时调用  
        void       *(*create_srv_conf)(ngx_conf_t *cf);  
        char       *(*merge_srv_conf)(ngx_conf_t *cf, void *prev, void *conf);  
                                                            //解析location块时调用  
        void       *(*create_loc_conf)(ngx_conf_t *cf);  
        char       *(*merge_loc_conf)(ngx_conf_t *cf, void *prev, void *conf);  
    } ngx_http_module_t;  

结构中的所有成员都是指向回调函数的函数指针,这些函数在HTTP类模块初始化过程的不同阶段调用。*preconfiguration指针指向的函数是在解析配置文件中的http块前调用,*postconfiguration指针指向的函数是在完成http块解析后调用,*create_main_conf指针指向的函数在初始化http块之前调用,*init_main_conf指针指向的函数在初始化http块时调用,*create_srv_conf指针指向的函数在初始化server块之前调用,*merge_srv_conf指针指向的函数实现合并server块和http块中相同指令的配置,*create_loc_conf指针指向的函数在初始化location块之前调用,*merge_loc_conf指针指向的函数实现合并location块和server块中相同指令的配置。

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/nginx-2/1529.html

11.1.3 模块上下文:等您坐沙发呢!

发表评论

7 + 2 = ?


博主微信号,很高兴为您提供帮助

随便看看

为您推荐

0