Emiller的Nginx模块开发指南中文版(4)

如果第一第二个参数都没有被设置而采用的值

结果会被保存在第一个参数中。能用的合并函数包括 ngx_conf_merge_size_value, ngx_conf_merge_msec_value 等等. 可参见 . 问:第一个参数是传值的,那如何能做到将结果保存到第一个参数中?

答:这些函数都是由预处理命令定义的(在真正编译之前,它们会被扩展成一些if语句) 同时还需要注意的是错误的产生。函数会往log文件写一些东西,同时返回NGX_CONF_ERROR。这个返回值会将server的启动挂起。(因为被标示为NGX_LOG_EMERG级别,所以错误同时还会输出到标准输出。作为参考,列出了所有的日志级别。) 3.4. 模块定义 接下来我们间接地介绍更深一层:结构体ngx_module_t。该结构体变量命名方式为ngx_http_<module name>_module。它包含模块的内容和指令执行方式,同时也还包含一些回调函数(退出线程,退出进程,等等)。模块定义在有的时候会被用作查找的关键字,来查找与特定模块相关联的数据。模块定义通常像是这样: ngx_module_t ngx_http__module ={
NGX_MODULE_V1
,
&ngx_http__module_ctx,/* module context */
ngx_http__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
}; ...仅仅替换掉合适的<module name>就可以了。模块可以添加一些回调函数来处理线程/进程的创建和销毁,但是绝大多数模块都用NULL忽略这些东东。(关于这些回调函数的入参,可以参考 .) 3.5. 模块装载 模块的装载方式取决于模块的类型:handler、filter还是load-balancer。所以具体的装载细节将留在其各自的章节中再做介绍。

更多详情见请继续阅读下一页的精彩内容

相关阅读

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19fc7ad62f46cc42880e39dcf6c03d4a.html