コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Apache 2.2の検証 1

普通に起動するのは問題ないので、Tomcatとの接続を確認してみる。
参考:



環境:



とりあえず、ApacheTomcatの連携は、以下の手順で行う。
●インストール
まず、Apacheのインストールを行う。

$ tar xvfz httpd-2.2.0.tar.gz
$ cd httpd-2.2.0
$ ./configure --enable-proxy --enable-proxy-ajp
$ make
# make install

ApacheTomcatの連携のためには、mod_proxy_ajpモジュールが必要となる。
mod_proxy_ajpモジュールの実行には、mod_proxyモジュールが必要となる。


次に、JDKのインストールを行う。
rpmでもbinファイルでもどちらでもかまわないのでインストールする。

# cp ./jdk-1_5_0_06-linux-i586.bin /usr/local/
# chmod 700 jdk-1_5_0_06-linux-i586.bin
# ./jdk-1_5_0_06-linux-i586.bin

TOMCATの実行にJAVA_HOMEが必要なので、/etc/profileにJAVA_HOMEを設定する。

export JAVA_HOME=/usr/local/jdk1.5.0_06



最後に、Tomcatをインストールする。もちろんバイナリで。

# cp ./pache-tomcat-5.5.15.tar.gz /usr/local/
# tar xvfz apache-tomcat-5.5.15.tar.gz



ApacheTomcatの連携
http://saikyoline.jp/weblog/archives/2006/01/mod_proxy_ajp_1.html
によると、最近はIncludeで設定を読み込むようなので、httpd.confに以下のように記述する。

Include conf/ext/httpd-proxy.conf

次に、このIncludeするファイルの実体を以下のように記述する。

<Location /servlets-examples/>
  ProxyPass ajp://localhost:8009/servlets-examples/
</Location>

ここまで設定したら、TomcatApacheの順に起動して以下のアドレスにアクセスしてServletが正しく動いているか確認する。

http://localhost/servlets-examples/

動いていれば、連携はうまくいっている。


●ロードバランサの設定
Apacheと連携することで、Tomcatのロードバランシングは比較的簡単にできる。
まずは、単純にロードバランスする例を紹介する。
最初に、Tomcatを2つ用意する。mv等で名前を変更してもいいし、2つ解凍してもいいと思われる。
2つのTomcatをそれぞれTomcat1、Tomcat2とする。

  • Tomcat1、Tomcat2ともに、server.xmlファイルのCluster要素のコメントをはずす。
  • Tomcat2のserver.xmlファイルのすべてのポート属性の値に10000を足す。ただし、Cluster要素中のポート属性は、tcpListenPortのみ10000を足す。
  • Tomcat1、Tomcat2のクラスタリングするアプリケーションのweb.xmlを加える。場所は、description要素の直後になる。

以上で、Tomcatの設定は終了となる。
ここで、実際に両方のTomcatを起動し、以下のアドレスを同じブラウザで順に開き、アプリケーションを動かしてセッション情報を引き継いでいるか確認する。

http://localhost:8080/
http://localhost:18080/

次に、Apacheのロードバランサを利用する。
先ほどの、
httpd-proxy.confファイルを以下のように編集する。

<Proxy balancer://myCluster>
  BalancerMember ajp://localhost:8009/servlets-examples/
  BalancerMember ajp://localhost:18009/servlets-examples/
</Proxy>

<Location /s/>
  ProxyPass balancer://myCluster/
</Location>

この状態で、以下のアドレスにアクセスすることで、servlets-exapmlesアプリケーションが使用できる。

http://localhost/s/

ここでも、交互にTomcatを停止して、同じアドレスでアクセスできることを確認する。
実験していて気づいたのは、片方のTomcatを停止後に同じTomcatを起動した、直後にもう一方のTomcatを停止するとApacheからTomcatにアクセスできない状態になる。
Tomcatの起動後、1分くらい待ってTomcatを停止すると連携がうまくいっているため、情報の伝達?に時間がかかっているものと思われる(ドキュメントをまだ、あまり読んでいないため、後日追記したい)。

広告