发布日期:2013-03-23 10:44 来源:末信 标签: Nginx 模块 定义 注册
 

第二步,我们间接的介绍更多一层,结构体ngx_module_t。这个结构体变量命名为ngx_http_<module name>_module。它包含有模块的主要内容和指令的执行部分,也有一些回调函数(退出线程,退出进程,等等)。这些函数的定义是把数据处理关联到特定模块的关键。模块定义像这个样子:

ngx_module_t ngx_http_<module name>_module = {
NGX_MODULE_V1,
&ngx_http_<module name>_module_ctx, /* module context */
ngx_http_<module name>_commands, /* module directives */
NGX_HTTP_MODULE, /* module type */
NULL, /* init master */
NULL, /* init module */
NULL, /* init process */
NULL, /* init thread */
NULL, /* exit thread */
NULL, /* exit process */
NULL, /* exit master */
NGX_MODULE_V1_PADDING

};

…仅仅替换掉合适的模块名称就可以了。在进程/线程退出的时候,模块可以添加一些回调函数来运行,但大多数模块用不到。(这些回调函数的参数,可以参考 core/ngx_conf_file.h. )

模块注册

有两种途径来注册(Installation)模块:处理模块经常是通过指令的回调函数来注册,过滤模块通过模块上下文结构体中的 postconfigration回调函数来注册。具体你可以下面具体模块中会提到。

相关评论

专题信息
    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。