JDK6+Tomcat6とApacheとの連携
Created: 9 September 2007
Tomcat6のインストールと設定 (9 September 2007)
別サーバーのApache2.2との連携
JDK6のダウンロード
以下からJDK6をダウンロードします。
http://java.sun.com/javase/ja/6/download.html
2007年9月9日時点で、"Java(TM) SE Development Kit 6 Update 2"("jdk-6u2-linux-i586-rpm.bin")がダウンロードできました。
rpmをダウンロードしてみました。
JDK6のインストール
ダウンロードしたファイルを実行すると、".rpm"のファイルが展開されインストールされます。
# ./jdk-6u2-linux-i586-rpm.bin : Do you agree to the above license terms? [yes or no] yes Unpacking... Checksumming... Extracting... UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu). inflating: jdk-6u2-linux-i586.rpm inflating: sun-javadb-common-10.2.2-0.1.i386.rpm inflating: sun-javadb-core-10.2.2-0.1.i386.rpm inflating: sun-javadb-client-10.2.2-0.1.i386.rpm inflating: sun-javadb-demo-10.2.2-0.1.i386.rpm inflating: sun-javadb-docs-10.2.2-0.1.i386.rpm inflating: sun-javadb-javadoc-10.2.2-0.1.i386.rpm Preparing... ########################################### [100%] 1:jdk ########################################### [100%] Unpacking JAR files... rt.jar... jsse.jar... charsets.jar... tools.jar... localedata.jar... plugin.jar... javaws.jar... deploy.jar... error: %post(jdk-1.6.0_02-fcs.i586) scriptlet failed, exit status 5 Installing JavaDB Preparing... ########################################### [100%] 1:sun-javadb-common ########################################### [ 17%] 2:sun-javadb-core ########################################### [ 33%] 3:sun-javadb-client ########################################### [ 50%] 4:sun-javadb-demo ########################################### [ 67%] 5:sun-javadb-docs ########################################### [ 83%] 6:sun-javadb-javadoc ########################################### [100%] Done. #全てのrpmをインストールします。
Tomcatのダウンロード
以下からダウンロードできます。
http://tomcat.apache.org/download-60.cgi
2007年9月9日に、上記から、最新のBinary Distributionの"Core"の"tar.gz"をダウンロードしました。
Tomcatのインストール
Tomcatのインストールは、解凍して、コンテンツを置くディレクトリ("/var/www/tomct6")にコピーすればOKです。
# tar zxvf apache-tomcat-6.0.14.tar.gz
:
# mv apache-tomcat-6.0.14 /var/www
# cd /var/www
# ln -s apache-tomcat-6.0.14 tomcat6
Tomcat実行のための設定
環境変数を自動設定できるようにします。
Tomcatでログインしたときに自動実行される"/root/.bash_profile"に2行を追加します。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export JAVA_HOME=/usr/java/jdk1.6.0_02
export CATALINA_HOME=/var/www/tomcat6
起動してみます
# $TOMCAT_HOME/bin/catalina.sh start
Using CATALINA_BASE: /var/www/tomcat6
Using CATALINA_HOME: /var/www/tomcat6
Using CATALINA_TMPDIR: /var/www/tomcat6/temp
Using JRE_HOME: /usr/java/jdk1.6.0_02
#
"http://(ip-address):8080" でTomcat画面が表示されれば起動成功です。
自動起動させる方法
以下のファイルを、"/etc/init.d/tomcat6"で作成します。
#!/bin/sh # # Startup script for the tomcat # # chkconfig: 345 80 15 # description: Tomcat is a Servlet+JSP Engine. # Source function library. . /etc/rc.d/init.d/functions export JAVA_HOME=/usr/java/jdk1.6.0_02 export CATALINA_HOME=/var/www/tomcat6 export PATH=$PATH:$JAVA_HOME/bin case "$1" in 'start') if [ -f /var/www/tomcat6/bin/startup.sh ]; then echo "Starting the tomcat service" "/var/www/tomcat6/bin/startup.sh" fi ;; 'stop') echo "Stopping the tomcat service." "/var/www/tomcat6/bin/shutdown.sh" ;; 'restart') $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac exit 0
ajpで連携してみる
"/var/httpd/conf.d/proxy_ajp.conf"を変更し、Apacheを再起動します。
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#
# When loaded, the mod_proxy_ajp module adds support for
# proxying to an AJP/1.3 backend server (such as Tomcat).
# To proxy to an AJP backend, use the "ajp://" URI scheme;
# Tomcat is configured to listen on port 8009 for AJP requests
# by default.
#
#
# Uncomment the following lines to serve the ROOT webapp
# under the /tomcat/ location, and the jsp-examples webapp
# under the /examples/ location.
#
ProxyPass /tomcat/ ajp://192.168.0.26:8009/
ProxyPass /examples/ ajp://192.168.0.26:8009/jsp-examples/
上記設定で、Tomcatのサンプルを実行させることができます。
2つのTomcatでクラスタ構成にする
2つのサーバーに、同じコンテンツを搭載し、以下のように設定すると負荷分散できます。
また、片方が停止しても起動しているほうでサービスが継続します。
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ProxyRequests Off ProxyPass /cluster/ balancer://tomcat/ lbmethod=byrequests nofailover=Off maxattempts=1 <Proxy balancer://tomcat/> BalancerMember ajp://192.168.0.26:8009/cluster-sample/ keepalive=On loadfactor=1 BalancerMember ajp://192.168.0.27:8009/cluster-sample/ keepalive=On loadfactor=1 </Proxy>
両方がとまってしまうと、両方を起動しないと復帰できません。