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 ディレクティブを使って
同等のことができるので、このモジュールは削除されました。