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_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 データベースの運用に利用する べきです。現存のアプリケーションは、実現可能であればどこでもこれらを 使うように更新され、透過的にあるいは推奨オプションとして ユーザに提供されるべきです。