MASAHIRORIN’s diary

夜麻傘(MASAHIRORIN)の跡地

Apache多重起動達成

が、しかし結局は出入り口のIPが一本しかないので無駄でしかなかった。
もうひとつ回線契約するか、固有IPを契約するしか・・・。



以下、いざって時の為の備忘録。


前提条件

  • Apache Version : httpd.i386 2.2.3-43.el5.centos.3
  • インストール  : パッケージインストール
  • 二重起動を前提に、それぞれAとBとする
  1. Apache用のコンフィグファイルをA用とB用にそれぞれ用意する。 -> デフォルトは/etc/httpd/conf/httpd.conf
  2. A用とB用でそれぞれ違う値をListenとServerNameに設定する。
    1. ServerName : 受信する時のURL
    2. Listen   : 受信する時に使うポート
  3. /var/run/httpd.pid を素にA用とB用のpidファイルを用意する
  4. A用とB用でそれぞれ違う数値を入力しておく -> Apacheのプロセス番号
  5. Apache起動用のスクリプトを素にA用とB用にそれぞれ用意する。 -> デフォルトは/etc/rc.d/init.d/httpd
  6. A用とB用で用意したスクリプトの中身を書き換える。
  • 以下、書き換える場所
    • pidfile=${PIDFILE-/var/run/httpd.pid} ⇒ ${PIDFILE-用意したpidファイルのフルパス}
    • CONFFILE=/etc/httpd/conf/httpd.conf ⇒ 用意したコンフィグファイルのフルパス

start() {
    echo -n $"Starting $prog: "
    check13 || exit 1
  ★  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch ${lockfile}
    return $RETVAL
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  • ★  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd -f $CONFFILE $OPTIONS


スクリプトファイル内でApache起動用のコマンドを生成しているので、
スクリプト内で設定しているCONFFILEを -f オプションで付け加えると、
別種の設定内容でApacheを起動できる。


が、例え違うServerNameを設定していても、外部からブラウザでURL入力した時に
IPに変換されてしまうので、結局は同じところに辿りついてしまうというオチ。

  • Aだけの場合
    • URL ⇒ IPに変換 ⇒ サーバのIPへ接続 ⇒ [A]Apacheが受信応答
  • AとBがある場合  B無視
    • URL ⇒ IPに変換 ⇒ サーバのIPへ接続 ⇒ [A]Apacheだけが受信応答


まぁ、結局は二種類のURLで接続できるようにしたかったのですが、
Apache多重だけでは出来ないってところです。結論。


ルータ買わなきゃだめかなぁ・・・。