Apache 2.2の検証 1
普通に起動するのは問題ないので、Tomcatとの接続を確認してみる。
参考:
- http://saikyoline.jp/weblog/archives/2006/01/mod_proxy_ajp_1.html
- http://www2.kawaz.jp/mod_proxy.html
- http://tomcat.apache.org/connectors-doc/proxy.html
- 日経Linux 2006年3月号
環境:
とりあえず、ApacheとTomcatの連携は、以下の手順で行う。
●インストール
まず、Apacheのインストールを行う。
$ tar xvfz httpd-2.2.0.tar.gz $ cd httpd-2.2.0 $ ./configure --enable-proxy --enable-proxy-ajp $ make # make install
ApacheとTomcatの連携のためには、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
●ApacheとTomcatの連携
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>
ここまで設定したら、Tomcat、Apacheの順に起動して以下のアドレスにアクセスして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を停止すると連携がうまくいっているため、情報の伝達?に時間がかかっているものと思われる(ドキュメントをまだ、あまり読んでいないため、後日追記したい)。
CREATE ROLE
PostgreSQL 8.1からUSER、GROUPの代わりにROLEというものを使うようです。
より、標準SQLに近い形になると言うことで、それ自体はいいことかと思います。
とりあえず、CREATE USERや、CREATE GROUPといったSQLは残るようですが、CREATE ROLEの別名と言う形になるようです。
また、後日検証します。