Apacheを複数のプロセスで起動する方法

こんにちは、中村です。

今回は、Apacheを追加でインストールすることなく複数のインスタンスを起動する方法について紹介します。

前提条件

  • OS:CentOS 5
  • Apache:Apache2.2.3

構成例

デフォルトの構成1(設定ファイル)を複製し、ServerRootとListenポートを変更したものを構成2とする。

項目構成1構成2
IPアドレス192.168.11.11192.168.11.22
ポート番号808000
Apacheルートディレクトリ/etc/httpd/etc/httpd2

起動スクリプトの修正

Apacheが起動時に読み込む設定ファイル(confファイル)は起動スクリプト(/etc/init.d/httpd)に記述されています。
別のconfファイルを読み込む場合、スクリプトを複製して読み込むconfファイルを変更します。

起動時に読み込むconfファイルを指定するよう起動オプションを追加します。

38行目くらいに挿入、構成2両方)

# 構成1
OPTIONS="-f /etc/httpd/conf/httpd.conf -k start"
# 構成2
OPTIONS="-f /etc/httpd2/conf/httpd.conf -k start"

confファイルのチェック時にconfファイルの場所を指定しているので修正します。

41行目(構成2のみ)

CONFFILE=/etc/httpd/conf/httpd.conf

CONFFILE=/etc/httpd2/conf/httpd.conf

起動時のプロセスIDはファイルに書き出しており、複製したままだとファイルが重複してしまうので修正します。

35行目(構成2のみ)

pidfile=${PIDFILE-/var/run/httpd.pid}

pidfile=${PIDFILE-/var/run/httpd2.pid}

ファイルロック用設定は必要かどうかわかりませんが一応リネームしました(つまり未検証)。

36行目(構成2のみ)

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

lockfile=${LOCKFILE-/var/lock/subsys/httpd2}

confファイルの修正

構成に合わせて、confファイルを修正します。

設定項目構成1構成2
Listen808000
ServerName192.168.11.11:80192.168.11.22:8000
ServerRoot/etc/httpd/etc/httpd2
PidFile/var/run/httpd.pid/var/run/httpd2.pid

以上で、Apacheを複数のインスタンスで起動する設定は完了です。
この設定でそれぞれの起動スクリプトを実行すれば、両方起動できるはずです。
psコマンドでプロセスが複数実行できていることを確認してください。

Apacheを複数のプロセスで起動する方法” への1件のフィードバック

  1. ピンバック: Bookmarks for 4月 8th through 4月 10th

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です