以前整理的一篇文章,试验成功的
所需软件
apache-tomcat-5.5.23.tar.gz
jdk-1_5_0_11-linux-i586-rpm.bin
tomcat-connectors-1.2.20-src.tar.gz
httpd-2.2.4.tar.gz
在两台机器上做apache + tomcat 的负载均衡
计算机s1(192.168.1.10) 和s2 (192.168.1.15)
在s1上安装apache + jdk + tomcat + tomcat-connectors 在s2上安装 jdk + tomcat
s1做均衡并提供服务。s1上apache网页文件目录和tomcat网页文件目录要指向同一个目录
在s1机器中的操作
A 安装JDK
# cd /usr/local/
# chmod a+x jdk-1_5_0_11-linux-i586-rpm.bin
# ./jdk-1.5.0_04-linux-i586-rpm.bin
# cd /usr/java/
安装Tomcat
# cd /usr/local/
# tar xvfz apache-tomcat-5.5.23.tar.gz
# cd apache-tomcat-5.5.23
#mkdir /usr/local/tomcat
#cp -rp apache-tomcat-5.5.23/* /usr/local/tomcat/
#cd /usr/local/tomcat/bin
#./startup.sh
在/etc/profile最后面添加
JAVA_HOME=/usr/java/jdk1.5.0_11
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
CATALINA_HOME=/usr/local/tomcat
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH CATALINA_BASE CATALINA_HOME
# vi /etc/profile
重启机器
安装
Apache
# cd /usr/local/
# tar xvfz httpd-2.0.54.tar.gz
# cd httpd-2.0.54
#./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install
# vi /usr/local/apache/conf/httpd.conf
#Load mod_jk #指定加载模块,指定配置文件
LoadModule jk_module modules/mod_jk.so
#Configure mod_jk
JkWorkersFile conf/workers.properties
JkLogLevel info
NameVirtualHost 192.168.1.10 #添加虚拟主机
<VirtualHost 192.168.1.10>
ServerName [url]www.test.com[/url]
DocumentRoot /var/www/sobu
ServerAdmin
[email protected]
JkMountFile conf/uriworkermap.properties
</VirtualHost>
<Directory "/var/www/sobu"> #给虚拟主机目录付权限
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html,index.jsp #添加索引文件
</IfModule>
安装JK
#tar zxvf tomcat-connectors-1.2.20-src.tar.gz
#cd tomcat-connectors-1.2.20-src
#cd native/
#ls
#./buildconf.sh
#./configure --with-apxs=/usr/local/apache/bin/apxs
#make
#make install
在s1里设置两个文件/usr/local/apache/conf/uriworkermap.properties
#vi /usr/local/apache/conf/uriworkermap.properties
/*=DLOG4J
#/jkstatus=status #设置除以下类型的文件外,都由tomcat提供服务(也就是说下面列出的格式都有apache提供服务)
!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J
#vi /usr/local/apache/conf/workers.properties
worker.list=DLOG4J
# localhost server 1
# -----------------------
worker.s1.port=8009
worker.s1.host=192.168.1.10
worker.s1.type=ajp13
worker.s1.lbfactor=1
# localhost server 2
# -----------------------
worker.s2.port=8009
worker.s2.host=192.168.1.15
worker.s2.type=ajp13
worker.s2.lbfactor=1
#worker.s2.stopped=1
worker.DLOG4J.type=lb
worker.retries=3
worker.DLOG4J.balance_workers=s1,s2
worker.DLOG4J.sticky_session=true #设置会话粘贴
worker.DLOG4J.sticky_session_force=false
#worker.status.type=status
然后在s1的tomcat配置文件里设置
#vi /usr/local/tomcat/conf/server.xml
找到
<Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">
将jvmRoute="s1"
在s2的tomcat配置文件里设置
在s2机器中的操作:
安装JDK
# cd /usr/local/
# chmod a+x jdk-1_5_0_11-linux-i586-rpm.bin
# ./jdk-1.5.0_04-linux-i586-rpm.bin
# cd /usr/java/
安装Tomcat
# cd /usr/local/
# tar xvfz apache-tomcat-5.5.23.tar.gz
# cd apache-tomcat-5.5.23
#mkdir /usr/local/tomcat
#cp -rp apache-tomcat-5.5.23/* /usr/local/tomcat/
#cd /usr/local/tomcat/bin
#./startup.sh
在/etc/profile最后面添加
JAVA_HOME=/usr/java/jdk1.5.0_11
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
CATALINA_HOME=/usr/local/tomcat
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH CATALINA_BASE CATALINA_HOME
在s2的tomcat配置文件里设置
找到
<Engine name="Catalina" defaultHost="localhost" jvmRoute="s2">
将jvmRoute="s2"
测试:
修改s1和s2中的tomcat的网页目录
将s1上apache网页文件目录和tomcat网页文件目录要指向同一个目录,本例中为/var/www/sobu
在/usr/local/tomcat/conf/server.xml找到Host name项将 appBase改成网页文件的路径
<Host name="localhost" appBase="/var/www/"
然后在在文件的尾部添加 <Context docBase="sobu" path="/" crossContext="true"/>
如下位置:
<Context docBase="sobu" path="/" crossContext="true"/>
</Host>
</Engine>
</Service>
</Server>
注意:sobu是个文件夹,里面有基本文件夹WEB-INF(既/usr/local/tomcat/webapps/ROOT/WEB-INF)、index.jsp 、index.html
index.jsp 和index.html内容自己定义就好
WEB-INF文件即/usr/local/tomcat/webapps/ROOT/WEB-INF ,但要将里面的web.xml文件尾部的
<servlet>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<servlet-class>org.apache.jsp.index_jsp</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
注释掉或者删除
如不想指定新的网页文件位置则可修改/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml将尾部的
servlet>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<servlet-class>org.apache.jsp.index_jsp</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
注释掉或者删除
然后在修改/usr/local/tomcat/webapps/ROOT/index.jsp
内容,一方便辨认,我们通过web访问的到底是那台计算机
完成上面的后将s1的apache 和tomcat 启动,将s2的tomcat启动
测试:
访问 [url]http://192.168.1.10:8080[/url]
[url]http://192.168.1.15:8080[/url]
如果访没有问题说明两机器的tomcat 正常了
然后访问用两台机器分别访问
[url]http://192.168.1.10[/url]
如果正常将看到访问到的是两台不同的机器。