Apache HTTP Server 2.0 新特性概述
2021-08-24 17:19 更新
本文档描述了 Apache HTTP Server 1.3 和 2.0 版本之间的一些主要变化。
核心增强
- Unix 线程
- 在支持 POSIX 线程的 Unix 系统上,Apache httpd 现在可以在混合多进程、多线程模式下运行。这提高了许多配置的可扩展性,但不是所有配置。
- 新构建系统
- 构建系统已从头开始重写,以基于
autoconf
和libtool
。这使得 Apache httpd 的配置系统更类似于其他包的配置系统。 - 多协议支持
- Apache HTTP Server 现在有一些基础设施来支持服务多个协议。
mod_echo
已经写成例子了。 - 更好地支持非 Unix 平台
- Apache HTTP Server 2.0 在 BeOS、OS/2 和 Windows 等非 Unix 平台上更快、更稳定。随着特定于平台的多处理模块(MPM) 和 Apache Portable Runtime (APR)的引入,这些平台现在在其本机 API 中实现,避免了经常出错且性能不佳的 POSIX 仿真层。
- 新的 Apache httpd API
- 模块的 API 在 2.0 中发生了重大变化。1.3 中的许多模块排序/优先级问题应该消失了。2.0 自动完成了大部分工作,模块排序现在是按钩子完成的,以提供更大的灵活性。此外,还添加了新调用,可在不修补核心 Apache HTTP Server 的情况下提供额外的模块功能。
- IPv6 支持
- 在底层 Apache Portable Runtime 库支持 IPv6 的系统上,Apache httpd 默认获取 IPv6 侦听套接字。此外,
Listen
,NameVirtualHost
,和VirtualHost
指令支持IPv6的数字地址字符串(如“Listen [2001:db8::1]:8080
“)。 - 过滤
- Apache httpd 模块现在可以编写为过滤器,当内容流传送到服务器或从服务器传送时,它们会作用于内容流。这允许,例如,要分析的服务器端CGI脚本的输出包括使用指令
INCLUDES
过滤器mod_include
。该模块mod_ext_filter
允许外部程序充当过滤器,其方式与 CGI 程序可以充当处理程序的方式大致相同。 - 多语言错误响应
- 浏览器的错误响应消息现在使用 SSI 文档以多种语言提供。管理员可以自定义它们以实现一致的外观和感觉。
- 简化配置
- 许多令人困惑的指令已被简化。经常混淆
Port
和BindAddress
指令都消失了; 仅该Listen
指令用于 IP 地址绑定;该ServerName
指令指定服务器名称和端口号仅用于重定向和虚拟主机识别。 - 本机 Windows NT Unicode 支持
- Windows NT 上的 Apache httpd 2.0 现在对所有文件名编码使用 utf-8。这些直接转换为底层 Unicode 文件系统,为所有基于 Windows NT 的安装提供多语言支持,包括 Windows 2000 和 Windows XP。 此支持不扩展到 Windows 95、98 或 ME,它们继续使用机器的本地代码页进行文件系统访问。
- 更新了正则表达式库
- Apache httpd 2.0 包括Perl 兼容正则表达式库(PCRE)。所有正则表达式计算现在都使用更强大的 Perl 5 语法。
模块增强
mod_ssl
- Apache httpd 2.0 中的新模块。该模块是 OpenSSL 提供的 SSL/TLS 加密协议的接口。
mod_dav
- Apache httpd 2.0 中的新模块。该模块实现了用于发布和维护 Web 内容的 HTTP 分布式创作和版本控制 (DAV) 规范。
mod_deflate
- Apache httpd 2.0 中的新模块。该模块允许支持的浏览器在传送前请求压缩内容,从而节省网络带宽。
mod_auth_ldap
- Apache httpd 2.0.41 中的新模块。该模块允许使用 LDAP 数据库来存储 HTTP 基本身份验证的凭据。配套模块,
mod_ldap
提供连接池和结果缓存。 mod_auth_digest
- 包括对使用共享内存的跨进程会话缓存的额外支持。
mod_charset_lite
- Apache httpd 2.0 中的新模块。这个实验模块允许字符集转换或重新编码。
mod_file_cache
- Apache httpd 2.0 中的新模块。该模块包括
mod_mmap_static
Apache HTTP Server 1.3 版中的功能,并添加了进一步的缓存功能。 mod_headers
- 这个模块在 Apache httpd 2.0 中更加灵活。它现在可以修改 使用的请求标头
mod_proxy
,并且可以有条件地设置响应标头。 mod_proxy
- 代理模块已完全重写,以利用新的过滤器基础架构并实现更可靠、符合 HTTP/1.1 的代理。此外,新的
<Proxy>
配置部分提供了对代理站点更具可读性(并且内部速度更快)的控制;<Directory "proxy:...">
不支持重载配置。该模块现在分为特定的协议支持模块,包括proxy_connect
、proxy_ftp
和proxy_http
。 mod_negotiation
ForceLanguagePriority
可以使用新指令来确保客户端在所有情况下都收到单个文档,而不是 NOT ACCEPTABLE 或 MULTIPLE CHOICES 响应。此外,协商和 MultiViews 算法已被清理以提供更一致的结果,并提供了一种可以包含文档内容的新形式的类型映射。mod_autoindex
- 自动索引的目录列表现在可以配置为使用 HTML 表进行更清晰的格式化,并允许对排序进行更细粒度的控制,包括版本排序和目录列表的通配符过滤。
mod_include
- 新指令允许更改 SSI 元素的默认开始和结束标记,并允许在主配置文件而不是 SSI 文档中进行错误和时间格式配置。从正则表达式语法分析和分组(现在基于Perl的正则表达式语法)的结果可以使用检索到
mod_include
的变量$0
..$9
。 mod_auth_dbm
- 现在使用该
AuthDBMType
指令支持多种类型的类似 DBM 的数据库 。
以上内容是否对您有帮助:
更多建议: