こんにちは、中村です。
今回は、Apacheを追加でインストールすることなく複数のインスタンスを起動する方法について紹介します。
前提条件
- OS:CentOS 5
- Apache:Apache2.2.3
構成例
デフォルトの構成1(設定ファイル)を複製し、ServerRootとListenポートを変更したものを構成2とする。
項目 | 構成1 | 構成2 | |||
IPアドレス | 192.168.11.11 | 192.168.11.22 | |||
ポート番号 | 80 | 8000 | |||
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 | |||
Listen | 80 | 8000 | |||
ServerName | 192.168.11.11:80 | 192.168.11.22:8000 | |||
ServerRoot | /etc/httpd | /etc/httpd2 | |||
PidFile | /var/run/httpd.pid | /var/run/httpd2.pid |
以上で、Apacheを複数のインスタンスで起動する設定は完了です。
この設定でそれぞれの起動スクリプトを実行すれば、両方起動できるはずです。
psコマンドでプロセスが複数実行できていることを確認してください。
ピンバック: Bookmarks for 4月 8th through 4月 10th