Apache HTTP サーバ バージョン 2.2
この文書では、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_ldap
mod_auth_ldap
の
2.2 Authn/Authz
枠組みへの取り込みです。
LDAP の属性値と複雑な検索フィルターを使って
Require
ディレクティブに
取り込むことを新機能として含んでいます。mod_authz_owner
mod_version
mod_info
?config
引数を追加しました。
これは、Apache によって解析される設定ディレクティブを、ファイル名と
行数を付けて表示します。
また、モジュールは httpd -V
と同様の、リクエストフックの
順序と追加のビルド情報を表示します。mod_ssl
mod_imagemap
mod_imap
は、ユーザの混同を避けるため、
mod_imagemap
へと名前の変更を行いました。httpd
-M
が追加されました。このオプションでは現在の設定で読み込まれる
全てのモジュールがリストされます。
-l
オプションとは違って、このリストには
mod_so
で読み込まれる DSO を含んでいます。httxt2dbm
RewriteMap
で使われる 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 データベースの運用に利用する べきです。現存のアプリケーションは、実現可能であればどこでもこれらを 使うように更新され、透過的にあるいは推奨オプションとして ユーザに提供されるべきです。