Apacheは使用されておりますでしょうか?
今回はApacheのMPMを変更する方法についてご紹介します。
OSとバージョン
始めに今回使用する環境についてご紹介します。
OSは以下となります。
AlmaLinux release 9.3 (Shamrock Pampas Cat)
Apacheバージョンは以下となります。
httpd -V
Server version: Apache/2.4.57 (AlmaLinux)
利用中のMPMを確認
Apacheでは複数のリクエスト処理を制御するモジュール「MPM」があります。
「MPM」には「Prefork」や「Worker」「Event」があります。
それぞれの違いは下記公式サイトよりご確認ください。
下記コマンドを使用する事で現在使用しているMPMを確認す事が出来ます。
httpd -V | grep 'Server MPM'
下記結果となります。
Server MPM: event
今回の環境では「event」となっておりました。
利用可能なMPMを確認
それではMPMを変更する方法についてご紹介致します。
始めに変更対象のモジュールがインストールされているか確認します。
下記コマンドを使用しモジュールを確認する事が出来ます。
ls /etc/httpd/modules | grep "mod_mpm"
上記を実行すると下記の様に表示されました。
mod_mpm_event.so
mod_mpm_prefork.so
mod_mpm_worker.so
MPMの指定変更
MPMの指定は以下のファイルにて行われております。
cat /etc/httpd/conf.modules.d/00-mpm.conf
下記初期状態の設定ファイルです。
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines. See the httpd.conf(5) man
# page for more information on changing the MPM.
# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
LoadModule mpm_event_module modules/mod_mpm_event.so
今回は例として「Event」から「Prefork」に変更してみます。
下記の様にモジュール指定を変更します。
vi /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
↓
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
既存設定を削除したくない方は下記の様にコメントアウトを行い新たにモジュール指定を行います。
# LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
再起動
最後に設定変更反映の為、Apacheの再起動を行います。
下記コマンドを使用しシンタックスチェックを実施します。
httpd -t
「Syntax OK」と表示されれば正常に設定されております。
Syntax OK
シンタックスチェックが問題なければ「systemctl」を使用し再起動します。
systemctl restart httpd
変更確認
以上で変更完了となります。
下記コマンドを使用し確認を行ってください。
httpd -V | grep 'Server MPM'
「Event」から「Prefork」に変更されていれば成功です。
Server MPM: prefork