Apache HTTP Server 2.0 中的新功能概述

本文档介绍了 Apache HTTP Server 1.3 和 2.0 版本之间的一些主要更改。

Core Enhancements

  • Unix Threading

    • 在具有 POSIX 线程支持的 Unix 系统上,Apache httpd 现在可以在混合多进程,多线程模式下运行。这提高了许多(但不是全部)配置的可伸缩性。
  • 新建系统

    • 该构建系统已从头开始重写为基于autoconflibtool。这使 Apache httpd 的配置系统更类似于其他软件包。
  • Multiprotocol Support

    • 现在,Apache HTTP Server 已具备一些基础结构来支持服务多种协议。以mod_echo为例。
  • 更好地支持非 Unix 平台

    • 在非 Linux 平台(例如 BeOS,OS/2 和 Windows)上,Apache HTTP Server 2.0 更快,更稳定。通过引入特定于平台的multi-processing modules(MPM)和 Apache 可移植运行时(APR),这些平台现在已在其本机 API 中实现,从而避免了经常出现故障且性能不佳的 POSIX 仿真层。
  • 新的 Apache httpd API

    • 2.0 版的模块 API 发生了重大变化。 1.3 版本中的许多模块排序/优先级问题都应该解决。 2.0 会自动执行大部分操作,并且现在可以按钩进行模块 Order,以提供更大的灵 Active。此外,还添加了新的调用,这些调用提供了附加的模块功能,而无需修补核心 Apache HTTP Server。
  • IPv6 Support

    • 在基础 Apache 可移植运行时库支持 IPv6 的系统上,默认情况下,Apache httpd 获得 IPv6 侦听套接字。此外,ListenNameVirtualHostVirtualHost指令支持 IPv6 数字地址字符串(例如“ Listen [2001:db8::1]:8080”)。
  • Filtering

    • 现在可以将 Apache httpd 模块写为过滤器,当内容流传输到服务器或从服务器传递时,它会对其起作用。例如,这允许使用mod_include中的INCLUDES过滤器为 Server Side Include 指令解析 CGI 脚本的输出。模块mod_ext_filter允许外部程序充当过滤器,就像 CGI 程序充当处理程序一样。
  • 多语言错误响应

    • 现在,使用 SSI 文档以多种语言向浏览器提供了错误响应消息。Management 员可以自定义它们,以实现一致的外观。
  • Simplified configuration

    • 许多令人困惑的指令已得到简化。常常令人困惑的PortBindAddress指令不见了; IP 地址绑定仅使用Listen指令; ServerName指令仅为重定向和虚拟主机识别指定服务器名称和端口号。
  • 本机 Windows NT Unicode 支持

    • Windows NT 上的 Apache httpd 2.0 现在对所有文件名编码都使用 utf-8.这些直接转换为基础 Unicode 文件系统,从而为所有基于 Windows NT 的安装(包括 Windows 2000 和 Windows XP)提供多语言支持。 此支持并不扩展到 Windows 95、98 或 ME,后者 continue 使用机器的本地代码页进行文件系统访问.
  • 正则表达式库已更新

Module Enhancements

  • mod_ssl

    • Apache httpd 2.0 中的新模块。该模块是 OpenSSL 提供的 SSL/TLS 加密协议的接口。
  • mod_dav

    • Apache httpd 2.0 中的新模块。该模块实现了 HTTP 分布式创作和版本控制(DAV)规范,用于发布和维护 Web 内容。
  • 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 中的新模块。该模块包括 Apache HTTP Server 1.3 版中mod_mmap_static的功能,并增加了更多的缓存功能。
  • mod_headers

    • 该模块在 Apache httpd 2.0 中更加灵活。现在,它可以修改mod_proxy使用的请求 Headers,并且可以有条件地设置响应 Headers。
  • mod_proxy

    • 代理模块已被完全重写,以利用新的筛选器基础结构并实现更可靠的 HTTP/1.1 兼容代理。此外,新的<Proxy>配置节提供了对代理站点的更具可读性(内部更快)的控制;不支持重载的<Directory "proxy:...">配置。现在,该模块分为特定的协议支持模块,包括proxy_connectproxy_ftpproxy_http
  • mod_negotiation

    • 可以使用新的ForceLanguagePriority指令来确保 Client 端在所有情况下都接收单个文档,而不是“不能接受”或“多个选择”响应。另外,已经对协商和 MultiViews 算法进行了清理,以提供更一致的结果,并提供了一种可以包含文档内容的新类型的类型图。
  • mod_autoindex

    • 现在可以将自动索引的目录列表配置为使用 HTML 表进行更清晰的格式化,并允许更精细地控制排序,包括版本列表和通配符过滤。
  • mod_include

    • 新指令允许更改 SSI 元素的默认开始和结束标签,并允许在主配置文件中而不是 SSI 文档中进行错误和时间格式的配置。可以使用mod_include的变量$0 .. $9检索正则表达式分析和分组的结果(现在基于 Perl 的正则表达式语法)。
  • mod_auth_dbm

    • 现在使用AuthDBMType指令支持多种类型的类似 DBM 的数据库。