Apache 2.0 の新機能の概略

拡張: コア | モジュール


コアの拡張:

Unix のスレッド
POSIX スレッドをサポートしている Unix システム上では、 Apache はマルチプロセス、マルチスレッドのハイブリッドモードで 実行できるようになりました。これにより 多くの設定においてスケーラビリティが向上します。
新しいビルドシステム
ビルドシステムは autoconf と libtool に基づいたものになるように、 新しく書き直されました。これにより、Apache の configure のシステムは 他のパッケージと似たものになりました。
マルチプロトコルサポート
Apache に複数のプロトコルを扱うための機構が備わりました。 例として mod_echo が書かれています。
Unix 以外のプラットフォームのサポートの改善
Apache 2.0 は BeOS、OS/2、Windows などの Unix 以外の プラットフォームで、より速く、より安定して動作するようになりました。 プラットフォーム特有の マルチプロセッシングモジュール (MPM) と Apache Portable Runtime (APR) の導入により、 ネイティヴの API で実装されるようになり、 バグが多く、性能の悪いことが多い POSIX エミュレーションレイヤの使用を 回避することができました。
新しい Apache API
2.0 ではモジュールの API が大きく変わりました。 1.3 にあったモジュールの順番/優先度の問題の多くは なくなっているはずです。2.0 は優先度の選択をほとんどを自動的に行ない、 モジュールの順番はより柔軟性を高めるためにフック毎に行なわれるように なりました。また、コア Apache サーバにパッチをあてることなく 追加のモジュール機能を提供することができるように新しい関数が 追加されました。
IPv6 サポート
Apache が使用している Apache Portable Runtime library が IPv6 をサポートしているシステムでは Apache は デフォルトで IPv6 のソケットを listen します。さらに、Listen、NameVirtualHost、 <VirtualHost> の各ディレクティブが IPv6 のアドレスを サポートするようになりました (例えば、"Listen [fe80::1]:8080")。
フィルタ
Apache のモジュールはサーバから送られてきたり、サーバへ 送るストリームに対して動作するフィルタとして書くことができるように なりました。これにより、例えば CGI スクリプトの出力を mod_include の INCLUDES フィルタを使って Server Side Include のディレクティブを 解析する、というようなことが可能になりました。
多言語エラー応答
ブラウザへのエラー応答のメッセージが、SSI の文書を使って 複数の言語で提供されるようになりました。見ための一貫性を保つために 管理者がカスタマイズすることもできます。
設定の簡素化
多くの混乱を招きがちなディレクティブが簡素化されました。 よく混乱を引き起こしていた Port ディレクティブと Bind ディレクティブは なくなりました。Listen ディレクティブのみが IP アドレスの バインドに使われます。ServerName ディレクティブでは リダイレクトと vhost の認識のためだけにサーバの名前とポート番号を 指定します。
Windows NT のネイティヴ Unicode サポート
Windows NT 上の Apache 2.0 はファイル名の符号化全てに utf-8 を使うようになりました。そのファイル名は、Windows NT の Unicode ファイルシステムに直接変換されて、Windows 2000 と Windows XP を 含む、全ての Windows NT で多言語サポートを提供します。 このサポートは、ファイルシステムのアクセス時にローカルの コードページを使う Windows 95, 98, ME には適用されません。

モジュールの拡張:

mod_ssl
Apache 2.0 の新モジュール。このモジュールは OpenSSL が 提供する SSL/TLS 暗号プロトコルへのインタフェースです。
mod_dav
Apache 2.0 の新モジュール。このモジュールはウェブコンテンツを 送り、維持するための規格 HTTP Distributed Authoring and Versioning (DAV) を実装しています。
mod_auth_digest
このモジュールは共有メモリを使うことにより、プロセスをまたいだ セッションのキャッシュをサポートするようになりました。
mod_charset_lite
Apache 2.0 の新モジュール。この実験的なモジュールは キャラクタセットの変換や再符号化を可能にします。
mod_file_cache
Apache 2.0 の新モジュール。このモジュールは Apache 1.3 の mod_mmap_static の機能と、さらに拡張されたキャッシュ機能を 提供します。
mod_headers
このモジュールは Apache 2.0 で非常に柔軟性が 高くなりました。mod_proxy で使われるリクエストのヘッダを 変更できるようになりましたし、応答ヘッダを条件に応じて 設定できるようになりました。
mod_proxy
proxy モジュールは新しいフィルタの機構を利用するためと、 より信頼できる、HTTP/1.1 に準拠した proxy を実装するために 完全に書き直されました。さらに、新しい <Proxy> 設定セクションが proxy されるサイトのより読みやすく (内部的にもより速い) 設定を 提供します。オーバーロードされた <Directory "proxy:... > 設定はサポートされていません。このモジュールは proxy_connect, proxy_ftp, proxy_http といった、特定のプロトコルをサポートする モジュールに分割されるようになりました。
mod_negotiation
クライアントが NOT ACCEPTABLE や MULTIPLE CHOICES 応答の 代わりに常に単独の文書を受けとるようにするために、新しいディレクティブ ForceLanguagePriority を使うことができるようになりました。 さらに、より一貫性のある結果を提供するために ネゴシエーションと MultiViews のアルゴリズムが改善され、 文書の内容を含めることのできる、新しい形式のタイプマップが 提供されるようになりました。
mod_autoindex
Autoindex されるディレクトリの内容一覧が、 きれいに表示されるために HTML のテーブルを使うように 設定できるようになりました。また、バージョンによるソーティングなど、 より細かいソーティングの制御ができるようになり、ディレクトリ の内容一覧をワイルドカードにより選別することができるようにもなりました。
mod_include
新しいディレクティブにより、SSI のデフォルトの開始タグと終了タグを 変更できるようになりました。また、エラーと時刻の形式の設定が SSI の 文書中ではなく、主設定ファイル中で行なえるようになりました。 正規表現の解析とグループ化の結果 (Perl の正規表現の構文に 基づいたものになりました) を mod_include の変数 $0 .. $9 により 取得できるようになりました。
mod_auth_dbm
AuthDBMType ディレクティブにより、複数の DBM 型のデータベースをサポートする ようになりました。
mod_auth_db
mod_auth_dbm で AuthDBMType ディレクティブを使って 同等のことができるので、このモジュールは削除されました。