Tomcat与Apache或Nginx的集群负载均衡设置及Sersync同步应用

2019年8月31日19:56:09 评论 277

一、系统环境设置:
1
、准备三台RedHat linux 5 CentOS服务器:
1)负载均衡服务器:Apache安装自带的web发布服务(httpd服务) IP地址:192.168.0.100
2Tomcat发布服务器1:安装有两个发布服务tomcat1tomcat2IP地址:192.168.0.101
3Tomcat发布服务器2:安装有两个发布服务tomcat3tomcat4IP地址:192.168.0.102  
2
、统一对外部发布的地址是:http://192.168.0.100(即负载均衡地址)  
3
、在设定完成IP以后,最好先设置主机名和IP的对应关系:
# vi /etc/hosts
修改如下:
----> 192.168.0.100web.example.comweb
127.0.0.1localhost.localdomainlocalhost
::1localhost6.localdomain6localhost6  
二、Tomcat发布器的安装
1
JDK软件最新版下载http://www.Oracle.com/technetwork/java/javase/downloads/index.html
1)点击排列的最左边一个大图标的“JDK”进入,
2)接下来选择服务器的版本(linux),在“I agree”前面方框中打勾选中,再按“continue”下一步
3)选择下面一个版本进行下载,如
jdk-6u24-linux-i586.bin
4)下载完成后上传到web服务器上的“/tools”目录下(自己建的目录)  
2
JDK软件的安装:
1)可先查看当前JDK的版本是多少:
# java –version  
2)进入下载目录,授权JDK文件的可执行权限:
# cd /tools/
# chmod a+x
jdk-6u24-linux-i586.bin  
3)执行JDK的安装解压缩,完成后按回车结束:
# ./
jdk-6u24-linux-i586.bin  
4)把解压出来的目录移动到/usr/local下面
# mv jdk1.6.0_24 /usr/local/  
3
、配置JAVA的环境变量:
1)新建环境变量文件java.sh
# cd /etc/profile.d/
# vi java.sh
--->
添加下面的内容:
#set java environment
JAVA_HOME=/usr/local/jdk1.6.0_24
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH  
2)给java.sh授可执行的权限:
# chmod a+x java.sh  
3)重新登录终端,再次查询java的版本号是否升级了:
# java -version  
4
Tomcat软件最新版下载http://tomcat.apache.org/
1)先选择Download下面的tomcat版本(如tomcat 7.0
2)再点击“Core”下面的“tar.gz”进行下载,如apache-tomcat-7.0.12.tar.gz
3)下载完成后上传到web服务器上的“/tools”目录下(自己建的目录)  
5
Tomcat软件的安装
1)进入下载目录,进行解压缩:
# cd /tools
# tar zxvfapache-tomcat-7.0.12.tar.gz  
2)复制并重命名目录到/usr/lcoal下面
# ls -l
# cp apache-tomcat-7.0.12 /usr/local/tomcat1(web1
服务器)
# cp apache-tomcat-7.0.12 /usr/local/tomcat2(web1
服务器)  
# cp apache-tomcat-7.0.12 /usr/local/tomcat3(web2
服务器)
# cp apache-tomcat-7.0.12 /usr/local/tomcat4(web2
服务器)  
3)配置tomcat发布器的端口:
(web1
服务器tomcat1)
# cd tomcat1/conf
# vi server.xml
(修改如下四个地方:
----> 1) <Server port="8005" shutdown="SHUTDOWN">
这边的“8005”改为“8001”端口
2) <Connector port="8080" protocol="HTTP/1.1">
这边的“8080”发布端口改为“81”端口
3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
这边的改为“8011”端口
4) <Engine name="Catalina" defaultHost="localhost">
修改增加为如下:
<Engine name="
Catalina
" defaultHost="localhost"
jvmRoute="tomcat1"
>  
(web1
服务器tomcat2)
# cd tomcat2/conf/
# vi server.xml
(修改如下四个地方:
----> 1) <Server port="8005" shutdown="SHUTDOWN">
这边的“8005”改为“8002”端口
2) <Connector port="8080" protocol="HTTP/1.1">
这边的“8080”发布端口改为“82”端口
3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
这边的改为“8012”端口
4) <Engine name="Catalina" defaultHost="localhost">
修改增加为如下:
<Engine name
="Catalina"
defaultHost="localhost"
jvmRoute="tomcat2"
>  
(web2
服务器tomcat3)
# cd tomcat3/conf/
# vi server.xml
(修改如下四个地方:
----> 1) <Server port="8005" shutdown="SHUTDOWN">
这边的“8005”改为“8003”端口
2) <Connector port="8080" protocol="HTTP/1.1">
这边的“8080”发布端口改为“83”端口
3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
这边的改为“8013”端口
4) <Engine name="Catalina" defaultHost="localhost">
修改增加为如下:
<Engine nam="Catalina" defaultHost="localhost" jvmRoute="tomcat3">    
(web1
服务器tomcat4)
# cd tomcat4/conf/
# vi server.xml
(修改如下三个地方:
----> 1) <Server port="8005" shutdown="SHUTDOWN">
这边的“8005”改为“8004”端口
2) <Connector port="8080" protocol="HTTP/1.1">
这边的“8080”发布端口改为“84”端口
3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
这边的改为“8014”端口
4) <Engine name="Catalina" defaultHost="localhost">
修改增加为如下:
<Engine name="
Catalina
" defaultHost="localhost"
jvmRoute="tomcat4"
>    
4)在tomcatserver.xml配置参数据中增加session同步复制的设置:
# vi server.xml
(增加下列代码,增加到上面4)后面的cluster中去)  
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
(
下面的代码是实现session复制功能)
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.100.63"<!—这里填写本机IP地址-->
port="5000"
selectorTimeout="100" />
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>  
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>  
5)同时需要修改tomcatweb.xml配置参数才能真正实现session同步复制的设置:
# vi web.xml
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<distributable />
(
在倒数第二行增加这个代码才能实现session同步复制功能)
</web-app>  
6
、设置Tomcat发布服务开机自启动
1)复制tomcat启动文件到开机目录下:
# cp tomcat1/bin/catalina.sh/etc/rc.d/init.d/tomcat1  
2)修改上面的tomcat1启动文件:
# cd /etc/rc.d/init.d
# vim tomcat1
(在文件的最顶上添加下列几行)
---> #chkconfig:35 85 15
#description:tomcat1 server
CATALINA_HOME=/usr/local/
tomcat1
JRE_HOME=/usr/local/jdk1.6.0_24  
3)添加
tomcat1
到开机启动服务:
# chkconfig
--add tomcat1
# chkconfig
--list tomcat1
# chkconfig
tomcat1on
# service tomcat1 start
4)其它三个tomcat2 tomcat3 tomcat4 也都按上面三步来做  
5)如何查看tomcat的启动过程显示(类似于windows下面的启动DOS窗口显示)
方法一
:启动时用catalina.sh来启动,命令 # ./catalina.sh run
方法二:
如果用./startup.sh启动的话,查看启动日志 # tail

f
/usr/local/tomcat4/logs/catalina.out

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: