Apache HTTP サーバ バージョン 2.2

This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.
You may follow this link to go to the current version of this document.
この文書では、Apache HTTP サーババージョン 2.0 と 2.2 の主な違いについて 記述しています。 バージョン 1.3 からの新機能 については 2.0 の新機能 の文書をご覧下さい。
mod_authn_alias モジュールは認証の設定を
非常に簡単化してくれます。 モジュール名の変更
と 開発者向けの変更 を見てください。 そこには、
これらの変更がどのようにユーザとモジュール開発者に影響するかが
書いてあります。mod_cache と
mod_disk_cache そして、
mod_mem_cache はとても多くの変更を受けていて、
製品としての品質があると考えられます。
htcacheclean が導入され、
mod_disk_cache の設定がシンプルになりました。prefork と、worker
そして event MPM は httpd
を、
graceful-stop
のシグナル経由で、緩やかにシャットダウンさせます。
GracefulShutdownTimeout
のディレクティブがオプションのタイムアウトとして追加され、これに
よってhttpd は、サービス中リクエストの
状態如何に関わらず強制終了します。mod_proxy_balancer は、
負荷分散サービスを mod_proxy に提供します。
新しいモジュール mod_proxy_ajp は、
Apache Tomcat
で使われる、 Apache JServ Protocol version 1.3 の
サポートを提供します。httpd の configure 時に
--with-pcre のフラグを渡すことで、システムが
インストールしている PCRE を利用するように設定できます。mod_filter は、出力フィルターの連鎖に動的な
設定を導入しています。
これは、2.0 アーキテクチャにある、ややこしい依存と順序問題を
回避するために、リクエスト又はレスポンスヘッダや環境変数に
基づいて、フィルターを条件付きで挿入できるようにしています。httpd は、最新の 32-bit Unix システムでの 2GB
より大きなファイルのサポートを取り入れてビルドされます。
>2GB であるリクエストボディの扱いも追加されています。event MPM は、 Keep Alive のリクエストを受け付けて
処理するのに、別個のスレッドを使います。伝統的には Keep Alive の
リクエストを扱うのに、ワーカを使用する必要がありました。
Keep Alive のタイムアウトが来るまでは、そのワーカを再利用
できませんでした。mod_dbdと、 apr_dbd の枠組みを
併用することで、SQL を必要とするモジュールを直接サポートします。
スレッド MPM でコネクションプールをサポートします。
mod_auth は
mod_auth_basic と
mod_authn_file に分けられ、
mod_auth_dbm は
mod_authn_dbm と名前を変更し、
mod_access は、
mod_authz_hostと名前を変えられています。
また、新しいモジュール mod_authn_alias ができて、
ある種の認証設定を簡単化します。
mod_authnz_ldapmod_auth_ldap の
2.2 Authn/Authz 枠組みへの取り込みです。
LDAP の属性値と複雑な検索フィルターを使って
Require ディレクティブに
取り込むことを新機能として含んでいます。mod_authz_ownermod_versionmod_info?config 引数を追加しました。
これは、Apache によって解析される設定ディレクティブを、ファイル名と
行数を付けて表示します。
また、モジュールは httpd -V と同様の、リクエストフックの
順序と追加のビルド情報を表示します。mod_sslmod_imagemapmod_imap は、ユーザの混同を避けるため、
mod_imagemap へと名前の変更を行いました。httpd-M
が追加されました。このオプションでは現在の設定で読み込まれる
全てのモジュールがリストされます。
-l オプションとは違って、このリストには
mod_so で読み込まれる DSO を含んでいます。httxt2dbmRewriteMap
で使われる dbm のマップタイプに使用されます。APR と
APR-Utilから削除されました。
詳細については
APR Webサイトを見てください。mod_auth_* -> HTTP 認証メカニズムを実装する
モジュールmod_authn_* -> 認証バックエンドを提供する
モジュールmod_authz_* -> 認可(又はアクセスの制御)を
実装するモジュールmod_authnz_* -> 認証と認可の両方を実装する
モジュールap_log_cerror が、クライアントの接続の
際のエラーを記録するために追加されました。ログの出力メッセージには
クライアントの IP アドレスが含まれます。test_config が追加されました。
これにより、ユーザが -t を httpd の
起動時に与えた時だけに実行される、特別なコードを入れることが
できます。ThreadStackSize が全てのスレッド MPM のスタックサイズの
設定に追加されました。これはサードパーティのモジュールで、
デフォルトのスタックサイズが小さいことがあるために、必要と
なりました。ap_register_output_filter_protocol 又は
ap_filter_protocol を呼び出して
mod_filter に 委任することができます。pcreposix.h ヘッダは既に削除されました;
新しい ap_regex.h によって置き換えました。
古いヘッダである POSIX.2 regex.h によって
公開されている実装は、今は、ap_regex.h の
ap_ 名前空間の下に存在します。
regcomp と、 regexec 等々への呼び出しは
ap_regcomp, ap_regexec などに置き換え
られます。Apache 1.x と 2.0 では、SQL バックエンドを必要とするモジュールは それを自分で管理する責任がありました。車輪の再発明の問題を除いても、 これはとても非効率的なことです。例えばそれぞれのモジュールが自分 で接続を維持しなければなりません。
Apache 2.1 とその後は、 ap_dbd API が提供されており、
これを使ってデータベースの接続(スレッド化された又はスレッドでない
MPM に最適化した戦略を含んで)を管理することができます。
一方、APR 1.2 および以降では apr_dbd API でデータ
ベースとのやりとりを提供しています。
新しいモジュールはこれらを全ての SQL データベースの運用に利用する べきです。現存のアプリケーションは、実現可能であればどこでもこれらを 使うように更新され、透過的にあるいは推奨オプションとして ユーザに提供されるべきです。