複数の Apache インスタンスを構築する方法

[2019/5/8 追記]
上級エンジニアが一部リライトしました。訂正部分はこの文字色で記載しています。

[2019/5/15追記]
追加訂正はこちらの色で記載しています。

こんにちは。サイオステクノロジー OSS サポート担当何敏欽です。

今回は、CentOS7/RHEL7 において、マルチインスタンスで Apache HTTP Server を構築してみます。

CentOS7/RHEL7 同梱版の Apache を使用する構築手順

httpd がインストールされ、httpd.service は正常に起動していることを前提とします。複数のインスタンスを構成するため、まずは httpd.conf ファイルと conf.d ディレクトリをコピーします。 /etc/httpd 配下をコピーします。
※元記事の内容でも、設定ファイルの分割にはなっていますが、httpd.conf を分けるのであれば、設定ファイル格納ディレクトリ自体を分けてしまおうという意図です。

コピーした /etc/httpd/conf/httpd2.conf ファイル内の listen ポート番号 (設定する番号によって、ファイアウォールと SELinux 周りの設定が必要になることもある) と、Include で読み込んでいる conf.d のディレクトリ名、を変更します。なお、PidFile ディレクティブを追記し、PidFile ディレクティブで指定する PID ファイルを異なるパスに設定します。

/etc/httpd-2/ 配下の設定ファイルを適宜変更します。とりあえず変更が必要なディレクティブを以下に列挙します。下記の他にも、環境に合わせて随時ディレクティブを変更してください。

次に、systemd から起動するために 標準 httpd サービスのユニットファイルをコピーします。

httpd2 のインスタンスを管理するように systemd を設定します。コピーした /usr/lib/systemd/system/httpd2.service ファイル内の EnvironmentFile の項目の設定値を変更します。

コピーした /etc/sysconfig/httpd2 ファイル内の OPTIONS の行を下記のように記述します。コメント解除し、下記のように追記します。

/usr/lib/systemd/system/htcacheclean-2.service 変更箇所

/etc/sysconfig/htcacheclean-2 変更箇所

以上で設定が完了しました。 httpd2.service を起動します。問題なく起動できていますね。

以降の修正は後日行います。

コミュニティ版 Apache を使用する構築手順

まず、コンパイルに必要となる gcc、pcre-devel パッケージをインストールします。

Apache2.4 系の最新版  APR と APR-util の最新版 を確認し、ダウンロードします。

それぞれのファイルを展開します。

APR と APR-util を Apache の srclib ディレクトリに移動します。

ソースをコンパイルして、Apache をインストールします。

複数のインスタンスを構成するため、もう一つ Apache (apache2-Instance) をインストールします。「-prefix」でインストールパスを /usr/local-Instance/apache2-Instance に指定します。

インストールが終わったら、両インスタンスそれぞれの httpd.conf と httpd-mpm.conf を設定します。
シングルインスタンスで動作できることを確認してから、同梱版同様にファイルのコピー等を行ない、環境に応じた設定をします。

両インスタンスそれぞれの以下は起動スクリプトの例です。を設定します。

以上で設定が完了しました。両インスタンスを起動します。問題なく起動できていますね。
※動作結果は省略します。

以上で CentOS7/RHEL7 同梱版の Apache とコミュニティ版 Apache を使用してマルチインスタンスの構築方法を説明しました。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*