先ほど書いた、Apache2.4.3のインストール記事で書いた、
Apache2.2系からApache2.4系になった際の違いです。
Apacheのページに記載がありましたが、英語なので日本語訳しておきます。
ついでにわかりにくい部分に補足説明を記載してみました。
●Run-time Loadable MPMs
Multiple MPMs can now be built as loadable modules at compile time. The MPM of choice can be configured at run time.
●実行時にロード可能なMPM
複数のMPMをコンパイル時にロード可能なモジュールとしてビルドできます。
選択したMPMを実行時に設定できます。
※MPM (Multi Processing Module)とは?
Apache2.0系から採用されたリクエストの処理方法をモジュール化したもの。
./configureの際に --with-mpm= NAME で選択できる。
デフォルトはUnixであればprefork。
preforkはApache1.3系と同様にスレッドを使わずにリクエストを処理する。
workerはマルチスレッドとマルチプロセスのハイブリッド型で少ないリソースで
多くのリクエストに応答できる。
http://httpd.apache.org/docs/2.0/ja/mod/worker.html
http://httpd.apache.org/docs/2.0/ja/mod/prefork.html
●Event MPM
The Event MPM is no longer experimental but is now fully supported.
●イベントMPM
イベントMPMはもはや実験ではなく、完全サポートされています。
イベントMPMはworker MPMと同様に
マルチスレッドとマルチプロセスのハイブリッド型のMPMだが、
Keep Aliveリクエストの処理に別スレッドを利用します。
これにより、worker MPMの欠点であった、keep-alive受け入れ時に
クライアントにスレッドを占有される問題が解消されます。
●Asynchronous support
Better support for asynchronous read/write for supporting MPMs and platforms.
●非同期サポート
MPMとプラットフォームをサポートするための非同期の読み書きのサポートを改善しました。
●Per-module and per-directory LogLevel configuration
The LogLevel can now be configured per module and per directory. New levels trace1 to trace8 have been added above the debug log level.
●モジュール単位、ディレクトリ単位のログレベルの設定
ログレベルは現在ではモジュール単位やディレクトリ単位で設定できます。
●Per-request configuration sections
<If>, <ElseIf>, and <Else> sections can be used to set the configuration based on per-request criteria.
●要求単位の設定セクション
<If>, <ElseIf>, <Else>セクションを、
要求ごとの判定に基づいた設定をするために使用できます。
●General-purpose expression parser
A new expression parser allows to specify complex conditions using a common syntax in directives like SetEnvIfExpr, RewriteCond, Header, <If>, and others.
●汎用表現パーサー
新しい表現パーサーでは、SetEnvIfExpr、RewriteCond、ヘッダー、<If>などのようなディレクティブで共通の構文を使用して複雑な条件を指定できます。
●KeepAliveTimeout in milliseconds
It is now possible to specify KeepAliveTimeout in milliseconds.
●ミリ秒単位でのKeepAliveTimeout
KeepAliveのタイムアウト時間をミリ秒単位で指定できるようになりました。
●NameVirtualHost directive
No longer needed and is now deprecated.
●NameVirtualHostディレクティブ
不要になった今では廃止されています。
●Override Configuration
The new AllowOverrideList directive allows more fine grained control which directives are allowed in .htaccess files.
●設定のオーバーライド
新しいAllowOverrideListディレクティブにより、
.htaccessファイルで許可されているディレクティブをより細かく制御できます。
●Config file variables
It is now possible to Define variables in the configuration, allowing a clearer representation if the same value is used at many places in the configuration.
●設定ファイルの変数
設定ファイル内で変数を定義することが可能になりました。
これにより、同じ値が多くの個所で使用されている場合より明確な表現が可能になりました。
●Reduced memory usage
Despite many new features, 2.4.x tends to use less memory than 2.2.x.
●メモリ使用量の削減
多くの新機能にもかかわらず、2.4.xは2.2.xよりもメモリー使用量が少ない傾向にあります。
引用)
http://httpd.apache.org/docs/2.4/new_features_2_4.html
ということで、最大の違いはイベントMPMが使えるようになったんですね。
実は2.4系には結構重要なバグがあって、この後ちょっと悩まされることになりました。
次回の記事で明らかにしたいと思います。
Apache2.2系からApache2.4系になった際の違いです。
Apacheのページに記載がありましたが、英語なので日本語訳しておきます。
ついでにわかりにくい部分に補足説明を記載してみました。
●Run-time Loadable MPMs
Multiple MPMs can now be built as loadable modules at compile time. The MPM of choice can be configured at run time.
●実行時にロード可能なMPM
複数のMPMをコンパイル時にロード可能なモジュールとしてビルドできます。
選択したMPMを実行時に設定できます。
※MPM (Multi Processing Module)とは?
Apache2.0系から採用されたリクエストの処理方法をモジュール化したもの。
./configureの際に --with-mpm= NAME で選択できる。
デフォルトはUnixであればprefork。
preforkはApache1.3系と同様にスレッドを使わずにリクエストを処理する。
workerはマルチスレッドとマルチプロセスのハイブリッド型で少ないリソースで
多くのリクエストに応答できる。
http://httpd.apache.org/docs/2.0/ja/mod/worker.html
http://httpd.apache.org/docs/2.0/ja/mod/prefork.html
●Event MPM
The Event MPM is no longer experimental but is now fully supported.
●イベントMPM
イベントMPMはもはや実験ではなく、完全サポートされています。
イベントMPMはworker MPMと同様に
マルチスレッドとマルチプロセスのハイブリッド型のMPMだが、
Keep Aliveリクエストの処理に別スレッドを利用します。
これにより、worker MPMの欠点であった、keep-alive受け入れ時に
クライアントにスレッドを占有される問題が解消されます。
●Asynchronous support
Better support for asynchronous read/write for supporting MPMs and platforms.
●非同期サポート
MPMとプラットフォームをサポートするための非同期の読み書きのサポートを改善しました。
●Per-module and per-directory LogLevel configuration
The LogLevel can now be configured per module and per directory. New levels trace1 to trace8 have been added above the debug log level.
●モジュール単位、ディレクトリ単位のログレベルの設定
ログレベルは現在ではモジュール単位やディレクトリ単位で設定できます。
●Per-request configuration sections
<If>, <ElseIf>, and <Else> sections can be used to set the configuration based on per-request criteria.
●要求単位の設定セクション
<If>, <ElseIf>, <Else>セクションを、
要求ごとの判定に基づいた設定をするために使用できます。
●General-purpose expression parser
A new expression parser allows to specify complex conditions using a common syntax in directives like SetEnvIfExpr, RewriteCond, Header, <If>, and others.
●汎用表現パーサー
新しい表現パーサーでは、SetEnvIfExpr、RewriteCond、ヘッダー、<If>などのようなディレクティブで共通の構文を使用して複雑な条件を指定できます。
●KeepAliveTimeout in milliseconds
It is now possible to specify KeepAliveTimeout in milliseconds.
●ミリ秒単位でのKeepAliveTimeout
KeepAliveのタイムアウト時間をミリ秒単位で指定できるようになりました。
●NameVirtualHost directive
No longer needed and is now deprecated.
●NameVirtualHostディレクティブ
不要になった今では廃止されています。
●Override Configuration
The new AllowOverrideList directive allows more fine grained control which directives are allowed in .htaccess files.
●設定のオーバーライド
新しいAllowOverrideListディレクティブにより、
.htaccessファイルで許可されているディレクティブをより細かく制御できます。
●Config file variables
It is now possible to Define variables in the configuration, allowing a clearer representation if the same value is used at many places in the configuration.
●設定ファイルの変数
設定ファイル内で変数を定義することが可能になりました。
これにより、同じ値が多くの個所で使用されている場合より明確な表現が可能になりました。
●Reduced memory usage
Despite many new features, 2.4.x tends to use less memory than 2.2.x.
●メモリ使用量の削減
多くの新機能にもかかわらず、2.4.xは2.2.xよりもメモリー使用量が少ない傾向にあります。
引用)
http://httpd.apache.org/docs/2.4/new_features_2_4.html
ということで、最大の違いはイベントMPMが使えるようになったんですね。
実は2.4系には結構重要なバグがあって、この後ちょっと悩まされることになりました。
次回の記事で明らかにしたいと思います。