Apache 2.2 新特性概述——针对模块开发者的变化


APR 1.0 API
Apache2.2 使用 APR 1.0 API 。所有反对使用的函数和符号已经从 APR 和 APR-Util 中清除掉了。欲知详情,请查看APR 网站。
认证/授权(Authn/Authz)
原来捆绑在一起的认证和授权模块已经被按照下列规则进行了重命名:
mod_auth_*    -> 实现HTTP认证机制的模块
mod_authn_*  -> 实现后端认证支持者的模块
mod_authz_*   -> 实现授权(或访问)的模块
mod_authnz_* -> 同时实现认证和授权的模块
现在有一个新的认证后端提供者方案,可以简化新认证后端的创建。
连接错误日志
添加了一个新的ap_log_cerror函数用于记录客户端连接时发生的错误。并且在记录时包含客户端IP地址。
添加了一个测试配置的钩子(hook)
添加了一个新的test_config 钩子,可以在用户向httpd传递 -t 选项时,执行包含特定代码的模块。
设置线程型MPM所使用的栈空间大小
新增的ThreadStackSize指令可以用来限制所有线程型MPM所使用的栈大小。一些默认栈空间较小的平台上的第三方模块需要使用它指定栈空间的大小。
输出过滤器协议处理
过去,每个过滤器都要确保自身能够产生正确的应答头。现在过滤器可以调用ap_register_output_filter_protocol或ap_filter_protocol来委托mod_filter进行协议管理。
添加了监视钩子(Monitor hook)
监视钩子可以让模块运行父进程中事先安排好的工作。
正则表达式 API 发生了变化
pcreposix.h头文件现在被ap_regex.h头文件取代了。原来老的POSIX.2 regex.h 实现现在位于ap_名字空间下(由ap_regex.h提供)。比如原来的regcomp, regexec调用现在要修改成ap_regcomp, ap_regcomp调用。
DBD框架(SQL数据库API)
在1.x和2.0版本中,需要SQL支持的模块必须自己管理数据库。为了不要重新发明轮子,Apache 2.1 及以后的版本提供了ap_dbd API 来管理数据库连接(包括对线程型和非线程型MPM进行优化),同时 APR 1.2 及以后版本也提供了apr_dbd API 与数据库打交道。

新模块应当使用了这些API来进行数据库操作。现存的应用程序应当进行透明的升级或使用推荐选项来使用这些API

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3