Apache HTTP Server 版本2.2
这篇文档简述了Apache HTTP Server 2.0和2.2 版本之间的主要差异。对于1.3版本以后的新特性,请参考Apache 2.0 新特性文档。
mod_authn_alias
模块可以极大的简化某些身份认证的配置。请参见模块名的变更和针对模块开发者的变更以了解更多有关这些变更对于模块使用者和模块开发者的影响。mod_cache
、mod_disk_cache
、mod_mem_cache
经历了诸多修改以后现在已经具备了合格的产品质量了。新增加的htcacheclean
工具可以用来清理mod_disk_cache
模块使用的缓冲存储区。prefork
、worker
、event
多路处理模块(MPM)现在允许httpd
通过graceful-stop
信号被优雅的停止。可以用新增的GracefulShutdownTimeout
指令指定一个超时时间,超过指定的时间以后httpd
将会强行中止,而无论请求所处的服务状态如何。mod_proxy_balancer
模块为mod_proxy
提供了负载均衡服务。新增的mod_proxy_ajp
模块为Apache Tomcat使用的Apache JServ Protocol version 1.3
提供了支持。httpd
现在可以通过 --with-pcre
编译选项使用系统中已经安装好的PCRE。mod_filter
可以进行输出过滤器链的动态配置。它允许过滤器按照请求头或应答头或环境变量有条件的插入,这样就避免了许多在Apache2.0体系结构中存在的过滤器之间的依赖性和顺序问题。event
多路处理模块(MPM)使用一个单独隔开的线程处理持久连接(Keep Alive)。传统上,持久连接要求httpd专门拿出一个工作者(worker)(也就是一个进程/线程)来处理它。这个专用的工作者在持久连接超时前不能被重新使用。mod_dbd
和apr_dbd框架(framework)一起为需要使用数据库的模块提供直接的支持。在线程化的MPM中还能支持连接缓冲池。
Windows用户请注意,这个特性尚未包含在标准的windows版Apache中。如果你尝试在Windows平台上使用这个特性,请告诉我们你的进展情况。
mod_auth_basic
和mod_authn_file
两个模块;mod_auth_dbm现在更名为mod_authn_dbm
;mod_access现在更名为mod_authz_host
;还新增了一个mod_authn_alias
模块用于简化某些认证配置。mod_authnz_ldap
mod_auth_ldap
模块到2.2版的Authn/Authz
框架的一个移植。新的特性包括使用LDAP属性值和Require
指令中复杂的搜索过滤器。mod_info
?config
参数,可以用来显示被Apache分析过的配置指令,包括它们的文件名和行号。该模块还显示所有请求钩子(request hook)的顺序和额外的编译信息,有些类似于 httpd -V
mod_ssl
mod_imagemap
mod_imagemap
,以避免用户产生混淆和疑惑。httpd
-M
用来列出基于当前配置加载的所有模块。不同于 -l
选项的是,它还列出了通过mod_so
加载的DSO(动态共享对象)。httxt2dbm
RewriteMap
中使用dbm
映射表(map)类型。APR
和 APR-Util
中清除掉了。欲知详情,请查看APR 网站。ap_log_cerror
函数用于记录客户端连接时发生的错误。并且在记录时包含客户端IP地址。test_config
钩子,可以在用户向httpd
传递 -t
选项时,执行包含特定代码的模块。ThreadStackSize
指令可以用来限制所有线程型MPM所使用的栈大小。一些默认栈空间较小的平台上的第三方模块需要使用它指定栈空间的大小。ap_register_output_filter_protocol
或ap_filter_protocol
来委托mod_filter
进行协议管理。pcreposix.h
头文件现在被ap_regex.h
头文件取代了。原来老的POSIX.2 regex.h
实现现在位于ap_
命名空间下(由ap_regex.h
提供)。比如原来的regcomp
, regexec
调用现在要修改成ap_regcomp
, ap_regcomp
调用。在1.x和2.0版本中,需要SQL支持的模块必须自己管理数据库。为了不要重新发明轮子,Apache 2.1 及以后的版本提供了ap_dbd
API 来管理数据库连接(包括对线程型和非线程型MPM进行优化),同时 APR 1.2 及以后版本也提供了apr_dbd
API 与数据库打交道。
新模块应当使用了这些API来进行数据库操作。现存的应用程序应当进行透明的升级或使用推荐选项来使用这些API。