Apache 2.2 の新機能の概要 - Apache HTTP サーバ

Apache HTTP サーバ バージョン 2.2

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.2

# Apache 2.2 の新機能の概要

翻訳済み言語: en | fr | ja | ko | pt-br | tr

この文書では、Apache HTTP サーババージョン 2.0 と 2.2 の主な違いについて 記述しています。 バージョン 1.3 からの新機能 については 2.0 の新機能 の文書をご覧下さい。

- コメント

## コア機能の拡張

Authn/Authz
  認証と認可のモジュールは再構成されました。 新しい `mod_authn_alias` モジュールは認証の設定を 非常に簡単化してくれます。 モジュール名の変更 と 開発者向けの変更 を見てください。 そこには、 これらの変更がどのようにユーザとモジュール開発者に影響するかが 書いてあります。
キャッシュ
  `mod_cache` と `mod_disk_cache` そして、 `mod_mem_cache` はとても多くの変更を受けていて、 製品としての品質があると考えられます。 `htcacheclean` が導入され、 `mod_disk_cache` の設定がシンプルになりました。
設定
  デフォルトの設定レイアウトは簡単化されモジュラー化されました。 共通して使用される機能に使われる設定の断片は、今や Apache に 組み込まれていて、メインのサーバ設定に容易に追加することが できます。
緩やかな停止
  最新の `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` の サポートを提供します。
正規表現ライブラリの更新
  Perl Compatible Regular Expression Library (PCRE: Perl 互換正規表現ライブラリ) の バージョン 5.0 を入れました。 `httpd` の configure 時に `--with-pcre` のフラグを渡すことで、システムが インストールしている PCRE を利用するように設定できます。
高機能フィルター
  `mod_filter` は、出力フィルターの連鎖に動的な 設定を導入しています。 これは、2.0 アーキテクチャにある、ややこしい依存と順序問題を 回避するために、リクエスト又はレスポンスヘッダや環境変数に 基づいて、フィルターを条件付きで挿入できるようにしています。
大ファイルサポート
  `httpd` は、最新の 32-bit Unix システムでの 2GB より大きなファイルのサポートを取り入れてビルドされます。 >2GB であるリクエストボディの扱いも追加されています。
Event MPM
  `event` MPM は、 Keep Alive のリクエストを受け付けて 処理するのに、別個のスレッドを使います。伝統的には Keep Alive の リクエストを扱うのに、ワーカを使用する必要がありました。 Keep Alive のタイムアウトが来るまでは、そのワーカを再利用 できませんでした。
SQL データベースのサポート

  `mod_dbd`と、 `apr_dbd` の枠組みを 併用することで、SQL を必要とするモジュールを直接サポートします。 スレッド MPM でコネクションプールをサポートします。

## モジュールの拡張

Authn/Authz
  aaa ディレクトリのモジュールは名前を変えられ、ダイジェスト認証を よりよくサポートするようになっています。 例えば、 `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`
  このモジュールは 2.0 モジュール`mod_auth_ldap` の 2.2 `Authn/Authz` 枠組みへの取り込みです。 LDAP の属性値と複雑な検索フィルターを使って `Require` ディレクティブに 取り込むことを新機能として含んでいます。
`mod_authz_owner`
  ファイルシステムの所有者に基づいてファイルへのアクセスを認可する 新しいモジュールです。
`mod_version`
  稼働するサーバのバージョン数に基づいて設定ブロックを有効にする、 新しいモジュールです。
`mod_info`
  新しく、 `?config` 引数を追加しました。 これは、Apache によって解析される設定ディレクティブを、ファイル名と 行数を付けて表示します。 また、モジュールは `httpd -V` と同様の、リクエストフックの 順序と追加のビルド情報を表示します。
`mod_ssl`
  RFC 2817 に従って、非暗号クリアテキストから TLS 暗号へのコネクション グレードアップを追加しました。
`mod_imagemap`
  `mod_imap` は、ユーザの混同を避けるため、 `mod_imagemap` へと名前の変更を行いました。

## プログラムの拡張

`httpd`
  新しくコマンドラインのオプションとして `-M` が追加されました。このオプションでは現在の設定で読み込まれる 全てのモジュールがリストされます。 `-l` オプションとは違って、このリストには `mod_so` で読み込まれる DSO を含んでいます。
`httxt2dbm`
  テキストの入力から dbm ファイルを生成するのに使われる、新しい プログラムです。 `RewriteMap` で使われる `dbm` のマップタイプに使用されます。

## モジュール開発者向けの変更

APR 1.0 API
  Apache 2.2 は APR 1.0 API　を使用します。 使われなくなった関数とシンボルは `APR` と `APR-Util`から削除されました。 詳細については APR Webサイトを見てください。
Authn/Authz
  付属の認証と認可のモジュールは次のように名前を変更しました：
  - `mod_auth_*` -> HTTP 認証メカニズムを実装する モジュール
  - `mod_authn_*` -> 認証バックエンドを提供する モジュール
  - `mod_authz_*` -> 認可（又はアクセスの制御）を 実装するモジュール
  - `mod_authnz_*` -> 認証と認可の両方を実装する モジュール
  新しい認証バックエンド提供のスキームがあって、新しいバックエンドの 構築を非常にやさしくしてくれます。
接続エラーのログ
  新しい関数 `ap_log_cerror` が、クライアントの接続の 際のエラーを記録するために追加されました。ログの出力メッセージには クライアントの IP アドレスが含まれます。
設定テストのフックを追加
  あたらしいフックである `test_config` が追加されました。 これにより、ユーザが `-t` を `httpd` の 起動時に与えた時だけに実行される、特別なコードを入れることが できます。
スレッド MPM's のスタックサイズ設定
  新しいディレクティブである、 `ThreadStackSize` が全てのスレッド MPM のスタックサイズの 設定に追加されました。これはサードパーティのモジュールで、 デフォルトのスタックサイズが小さいことがあるために、必要と なりました。
出力フィルターのプロトコルハンドリング
  過去においては、個々のフィルターは、それぞれが影響をおよぼす ところでは、応答ヘッダを正しく生成する責任がありました。 フィルターは、今は、共通するプロトコル管理を `ap_register_output_filter_protocol` 又は `ap_filter_protocol` を呼び出して `mod_filter` に 委任することができます。
モニターフックを追加
  モニターフックを使って、モジュールを親 (root) のプロセスで レギュラー又はスケジュールのジョブを実行することが できます。
正規表現の API を変更
  `pcreposix.h` ヘッダは既に削除されました; 新しい `ap_regex.h` によって置き換えました。 古いヘッダである POSIX.2 `regex.h` によって 公開されている実装は、今は、`ap_regex.h` の `ap_` 名前空間の下に存在します。 `regcomp` と、 `regexec` 等々への呼び出しは `ap_regcomp`, `ap_regexec` などに置き換え られます。
DBD フレームワーク (SQL データベース API)

  Apache 1.x と 2.0 では、SQL バックエンドを必要とするモジュールは それを自分で管理する責任がありました。車輪の再発明の問題を除いても、 これはとても非効率的なことです。例えばそれぞれのモジュールが自分 で接続を維持しなければなりません。

  Apache 2.1 とその後は、 `ap_dbd` API が提供されており、 これを使ってデータベースの接続（スレッド化された又はスレッドでない MPM に最適化した戦略を含んで）を管理することができます。 一方、APR 1.2 および以降では `apr_dbd` API でデータ ベースとのやりとりを提供しています。

  新しいモジュールはこれらを全ての SQL データベースの運用に利用する べきです。現存のアプリケーションは、実現可能であればどこでもこれらを 使うように更新され、透過的にあるいは推奨オプションとして ユーザに提供されるべきです。

翻訳済み言語: en | fr | ja | ko | pt-br | tr

## コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.