Apache HTTP Server 2.2 新特性概述

2021-08-24 17:21 更新

本文档描述了 Apache HTTP Server 2.0 和 2.2 版本之间的一些主要变化。有关 1.3 版以来的新功能,请参阅2.0 新功能 文档。

核心增强

验证/验证
捆绑的身份验证和授权模块已重构。新的 mod_authn_alias(已从 2.3/2.4 移除)模块可以大大简化某些身份验证配置。有关这些更改如何影响用户和模块编写者的更多信息,请参阅模块名称更改和 开发人员更改。
缓存
mod_cachemod_cache_disk, 和 mod_mem_cache(已经从 2.3/2.4 中删除)已经发生了很多变化,现在被认为是生产质量的。htcacheclean 已被引入清理mod_cache_disk 设置。
配置
默认配置布局已被简化和模块化。可用于启用常用功能的配置片段现在与 Apache 捆绑在一起,并且可以轻松添加到主服务器配置中。
优雅的停止
preforkworker并且 event 最可能模式现在允许httpd 通过将安全关机 graceful-stop 信号。GracefulShutdownTimeout添加了该指令以指定可选的超时,之后httpd无论正在服务的任何请求的状态如何, 都将终止。
代理
mod_proxy_balancer模块为mod_proxy. 新mod_proxy_ajp模块添加了对Apache TomcatApache JServ Protocol version 1.3使用的 支持 。
更新了正则表达式库
现在包括Perl 兼容正则表达式库(PCRE) 的5.0 版 。 httpd可以通过传递--with-pcre标志来配置使用 PCRE 的系统安装 。
智能过滤
mod_filter向输出过滤器链引入动态配置。它允许根据任何请求或响应标头或环境变量有条件地插入过滤器,并免除 2.0 架构中存在更多问题的依赖项和排序问题。
大文件支持
httpd现在在现代 32 位 Unix 系统上支持大于 2GB 的文件。还添加了对处理 >2GB 请求正文的支持。
事件 MPM
eventMPM使用单独的线程来处理保持活动的请求和接受连接。Keep Alive 请求传统上需要 httpd 指定一个工作人员来处理它。在达到 Keep Alive 超时之前,无法再次使用此专用工作器。
SQL 数据库支持
mod_dbdapr_dbd 框架一起为需要它的模块带来直接的 SQL 支持。支持线程 MPM 中的连接池。

模块增强

验证/验证
aaa 目录中的模块已重命名,并为摘要身份验证提供更好的支持。例如, mod_auth现在被拆分为 mod_auth_basic和 mod_authn_filemod_auth_dbm现在被称为mod_authn_dbmmod_access已更名mod_authz_host。还有一个新的 mod_authn_alias(已从 2.3/2.4 中删除)模块,用于简化某些身份验证配置。
mod_authnz_ldap
该模块是 2.0mod_auth_ldap模块到 2.2Authn/Authz 框架的端口 。新功能包括在Require指令中使用 LDAP 属性值和复杂的搜索过滤器 。
mod_authz_owner
一个新的模块,它根据文件系统上文件的所有者来授权访问文件
mod_version
一个新模块,允许根据正在运行的服务器的版本号启用配置块。
mod_info
添加了一个新?config参数,它将显示 Apache 解析的配置指令,包括它们的文件名和行号。该模块还显示了所有请求挂钩的顺序和其他构建信息,类似于httpd -V.
mod_ssl
添加了对RFC 2817的支持 ,它允许连接从明文升级到 TLS 加密。
mod_imagemap
mod_imap已重命名为 mod_imagemap以避免用户混淆。

程序增强

httpd
添加了一个新的命令行选项-M,用于列出基于当前配置加载的所有模块。与-l选项不同,此列表包括通过mod_so.
httxt2dbm
一项新的计划用于生成DBM从文本输入文件,用于RewriteMap 与dbm地图类型。

顶部

模块开发人员更改

APR 1.0 API
Apache 2.2 使用 APR 1.0 API。所有不推荐使用的函数和符号都已从APR和 中 删除APR-Util。有关详细信息,请参阅 APR 网站。
验证/验证
捆绑的身份验证和授权模块已按以下方式重命名:
  • mod_auth_* -> 实现 HTTP 身份验证机制的模块
  • mod_authn_* -> 提供后端身份验证提供程序的模块
  • mod_authz_* -> 实现授权(或访问)的模块
  • mod_authnz_* -> 实现身份验证和授权的模块
有一个新的身份验证后端提供程序方案,可以极大地简化新身份验证后端的构建。
连接错误记录
添加了一个新功能ap_log_cerror来记录客户端连接发生的错误。记录时,该消息包括客户端 IP 地址。
添加了测试配置挂钩
添加了一个新的钩子,test_config以帮助模块只在用户传递 -thttpd.
设置线程 MPM 的堆栈大小
添加了一个新指令ThreadStackSize来设置所有线程 MPM 上的堆栈大小。对于具有较小默认线程堆栈大小的平台上的某些第三方模块,这是必需的。
输出过滤器的协议处理
过去,每个过滤器都负责确保它在影响它们的地方生成正确的响应标头。过滤器现在可以mod_filter使用 ap_register_output_filter_protocol或 ap_filter_protocol调用将公共协议管理委托 给 。
添加了监视器钩子
监视器挂钩使模块能够在父(根)进程中运行常规/计划作业。
正则表达式 API 变化
pcreposix.h报头不再可用; 它被新的ap_regex.h标题取代。该POSIX.2regex.h由旧的头露出实施是现在下提供ap_从命名空间ap_regex.h。调用regcompregexec等可以替换为调用 ap_regcompap_regexec
DBD 框架(SQL 数据库 API)

对于 Apache 1.x 和 2.0,需要 SQL 后端的模块必须自己负责管理它。除了重新发明轮子之外,这可能非常低效,例如当多个模块各自维护自己的连接时。

Apache 2.1 及更高版本提供ap_dbd用于管理数据库连接的API(包括针对线程和非线程 MPM 的优化策略),而 APR 1.2 及更高版本提供apr_dbd用于与数据库交互的API。

新模块现在应该将这些 API 用于所有 SQL 数据库操作。现有的应用程序应该升级以在可行的情况下使用它,无论是透明的还是作为向用户推荐的选项。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号