Apache HTTP Server 2.0 新特性概述

2021-08-24 17:19 更新

本文档描述了 Apache HTTP Server 1.3 和 2.0 版本之间的一些主要变化。

核心增强

Unix 线程
在支持 POSIX 线程的 Unix 系统上,Apache httpd 现在可以在混合多进程、多线程模式下运行。这提高了许多配置的可扩展性,但不是所有配置。
新构建系统
构建系统已从头开始重写,以基于autoconflibtool。这使得 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 侦听套接字。此外,ListenNameVirtualHost,和VirtualHost指令支持IPv6的数字地址字符串(如“ Listen [2001:db8::1]:8080“)。
过滤
Apache httpd 模块现在可以编写为过滤器,当内容流传送到服务器或从服务器传送时,它们会作用于内容流。这允许,例如,要分析的服务器端CGI脚本的输出包括使用指令 INCLUDES过滤器mod_include。该模块mod_ext_filter允许外部程序充当过滤器,其方式与 CGI 程序可以充当处理程序的方式大致相同。
多语言错误响应
浏览器的错误响应消息现在使用 SSI 文档以多种语言提供。管理员可以自定义它们以实现一致的外观和感觉。
简化配置
许多令人困惑的指令已被简化。经常混淆PortBindAddress指令都消失了; 仅该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_staticApache HTTP Server 1.3 版中的功能,并添加了进一步的缓存功能。
mod_headers
这个模块在 Apache httpd 2.0 中更加灵活。它现在可以修改 使用的请求标头mod_proxy,并且可以有条件地设置响应标头。
mod_proxy
代理模块已完全重写,以利用新的过滤器基础架构并实现更可靠、符合 HTTP/1.1 的代理。此外,新的 <Proxy> 配置部分提供了对代理站点更具可读性(并且内部速度更快)的控制;<Directory "proxy:...">不支持重载配置。该模块现在分为特定的协议支持模块,包括 proxy_connectproxy_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 的数据库 。


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号