学士学位论文基于apache tomcat的集群搭建Word格式.docx
《学士学位论文基于apache tomcat的集群搭建Word格式.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于apache tomcat的集群搭建Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
LB服务器
10.1.22.228
Apahce
Httpd
2
应用服务器
10.1.22.163
Tomcat
Tomcat01
Tomcat03
3
10.1.22.164
Tomcat02
Tomcat04
1.2软件需求
V2.4.12
源码
V8.0.22
二进制应用
运行环境
Java
V8U45
4
Tomcat-connectors
JK
V1.2.40
操作系统
Suse
V11SP3
软件安装
2
2.1安装说明
将准备好的软件保存到服务器上:
目录为/softoware。
软件
安装目录
httpd-2.4.12.tar.gz
/usr/local/apahce
apache-tomcat-8.0.22.tar.gz
/usr/local/tomcat
jdk-8u45-linux-x64.tar.gz
/usr/local/jdk-8u45-linux-x64
tomcat-connectors-1.2.40-src.tar.gz
modules/mod_jk.so
。
2.2Apache安装
1
2.1
2.2
2.2.1环境需求
1)httpd2.4.12会依赖更高版本的apr和apr-util,确保系统已经安装,不然会报编译失败;
2)检查系统软依赖包libtool,autoconf;
3)安装开发包组:
“DevelopmentTools“和”ServerPlatformDevelopment“和Perl-CompatibleRegularExpressionsLibrary(PCRE)。
apr-1.5.2.tar.bz2
/usr/local/apr
apr-util-1.5.4.tar.bz2
/usr/local/apr-tuil
pcre-8.36.tar.bz2
/usr/local/pcre
2.2.2安装apr
1)解压
#tar-xjvfapr-1.5.2.tar.bz2
2)设置安装路径
#cdapr-1.5.2
#./configure-prefix=/usr/local/apr
3)编译
#make
4)安装
#makeinstall
2.2.3安装apr-util
#tar-xjvfapr-util-1.5.4.tar.bz2
#cdapr-util-1.5.4
#./configure-prefix=/usr/local/apr-util--with-apr=/usr/local/apr
#tar-xzvfhttpd-2.4.12.tar.gz
2.2.4pcre安装
#tar-xjvfpcre2-10.00.tar.bz2【我安装的:
pcre-8.36.tar.bz2】
#cdpcre2-10.00
#./configure-prefix=/usr/local/pcre
2.2.5安装apahce
2)设置安装目录
#cdhttpd-2.4.12
#./configure--prefix=/usr/local/apache--with-pcre=/usr/local/pcre--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util
2.2.6启动
#cd/usr/local/apache/bin
#./apachectlstart
2.2.7验证
访问apache服务器:
http:
//10.1.22.228
响应结果:
It
works!
#apache服务器安装成功
2.3Tomcat安装
在两台Tomcat应用服务器上执行如下操作。
2.3
2.3.1环境需求
/usr/local/jdk1.8.0_45
/usr/locale/apache/modules
2.3.2JDK安装
在tomcat服务器上安装JDKV8,因为tomcat8对JDK版本的对地要求为JDK7以上。
1)拷贝JDK到/usr/local目录
cp/software/jdk-8u45-linux-x64.tar.gz/usr/local
2)解压JDK包
#./tar-xzvfjdk-8u45-linux-x64.tar.gz
解压时完成JDK安装,安装目录为/usr/local/jdk1.8.0_45。
3)设置JDK环境变量
修改用户系统环境变量
#vi/etc/profile
添加如下内容
exportJAVA_HOME=/usr/local/jdk1.8.0_45
exportJAVA_BIN=/usr/local/jdk1.8.0_45/bin
exportPATH=$PATH:
$JAVA_HOME/bin
exportCLASSPATH=.:
$JAVA_HOME/lib/dt.jar:
$JAVA_HOME/lib/tools.jar
4)验证
tomsrv01:
~#java-version
javaversion"
1.8.0_45"
Java(TM)SERuntimeEnvironment(build1.8.0_45-b14)
JavaHotSpot(TM)64-BitServerVM(build25.45-b02,mixedmode)
2.3.3安装Tomcat
使用Tomcat二进制安装包,解压即完成安装。
由于Tomcat是单实例服务器,所有要通过复制Tomcat的方法来创建第二个服务器。
1)创建安装目录
#mkdir/usr/local/tomcat01
2)解压
#tar-xzvfapache-tomcat-8.0.22.tar.gz-C/usr/local/tomcat01
3)创建tomcat02
#cd/usr/local
#cp-rtomcat01tomcat03
查看Tomcat实例个数
#ls–lrt
drwxr-xr-x9rootroot4096May2809:
57tomcat01
drwxr-xr-x9rootroot4096May2810:
39tomcat03
2.3.4修改配置
因为该例子是在同一台服务器上安装两个tomcat服务器,避免服务器端口使用冲突,tomcat01端口采用默认配置,tomcat03端口需要重新配置。
要修改的配置文件为server.xml文件。
1)编辑server.xml文件
#vi/usr/local/tomcat03/conf/server.xml
2)修改Server端口号
Server端口号
tomcat01
<
Serverport="
8005"
shutdown="
SHUTDOWN"
>
默认值
tomcat03
9005"
新修改值
3)修改HTTP
connector端口号
HTTP
Connectorport="
8080"
protocol="
HTTP/1.1"
connectionTimeout="
20000"
redirectPort="
8443"
/>
9080"
4)修改AJP
AJP
8009"
AJP/1.3"
redirectPort="
9009"
5)修改
engine
名称
Enginename="
Catalina"
defaultHost="
localhost"
jvmRoute="
tomcat01"
tomcat03"
2.3.5启动
分别启动tomcat01和tomcat03
#/usr/local/tomcat01/bin/startup.sh
启动tomcat01
#/usr/local/tomcat03/bin/startup.sh
启动tomcat03
#/usr/local/tomcat01/bin/catalina.shstart
#/usr/local/tomcat03/bin/catalina.shstart
2.3.6验证
Ø
Tomcat01测试
输入http:
//10.1.22.163:
8080
Tomcat03测试
9080
Tomcat02测试
//10.1.22.164:
Tomcat04测试
集群配置
3
3.1编译mod_jk模块
/usr/locale/apache/bin/apxs
#tar-xzvftomcat-connectors-1.2.40-src.tar.gz
2)设置编译目录
#cdtomcat-connectors-1.2.40-src/
#./native/configure--with-apxs=/usr/local/apache/bin/apxs
4)编译安装
5)查看mod_jk模块文件
#ls-l/usr/local/apache/modules/mod_jk.so
-rwxr-xr-x1rootroot11289165月2900:
03/usr/local/apache/modules/mod_jk.so
3.2加载mod_jk模块
3.1
3.2
3.2.1修改httpd.conf文件
1)编辑httpd.conf文件
#vi/usr/local/apache/conf/httpd.conf
2)添加加载命令
#Loadtomcat-connect
Includeconf/httpd-jk.conf
3.2.2httpd_jk.conf的配置
1)拷贝httpd-jk.conf文件到/usr/local/apache/conf
#cd/software/tomcat-connectors-1.2.40-src/conf
#cphttpd_jk.conf/usr/local/apache/conf
2)编辑httpd-jk.conf文件
配置项
LoadModulejk_modulemodules/mod_jk.so
配置mod_jk包
JkWorkersFileconf/workers.properties
配置工作负责文件
JkLogFilelogs/mod_jk.log
配置jk日志文件
JkLogLevelinfo
配置日志级别
JkShmFilelogs/mod_jk.shm
配置jk日志内存共享
JkMount/*balancer
配置负载均衡模式
3.2.3workers.properties的配置
1)拷贝workers.properties文件到/usr/local/apache/conf
#cpworkers.properties/usr/local/apache/conf
2)编辑workers.properties文件
编辑及添加如下内容
配置
balancer负载配置
worker.list=balancer
worker.balancer.type=lb
worker.controller.balanced_workers=tomcat01,tomcat02,
tomcat03,tomcat04
worker.controller.sticky_session=1
tomcat1的配置
worker.balancer.balance_workers=tomcat01
worker.tomcat01.reference=worker.template
worker.tomcat01.host=tomsrv01
worker.tomcat01.port=8009
worker.tomcat01.activation=A
worker.tomcat01.lbfactor=1
Tomcat2的配置
worker.balancer.balance_workers=tomcat02
worker.tomcat02.reference=worker.template
worker.tomcat02.host=tomsrv02
worker.tomcat02.port=8009
worker.tomcat02.activation=A
Tomcat3的配置
worker.balancer.balance_workers=tomcat03
worker.tomcat03.reference=worker.template
worker.tomcat03.host=tomsrv01
worker.tomcat03.port=8009
worker.tomcat03.activation=A
Tomcat4的配置
worker.balancer.balance_workers=tomcat04
worker.tomcat04.reference=worker.template
worker.tomcat04.host=tomsrv02
worker.tomcat04.port=8009
worker.tomcat04.activation=A
tempalte
负载模板配置
worker.template.type=ajp13
3.3Session复制
在Tomcat集群中实现session同步,可以通过session共享和复制来实现,下面以session复制来实现session同步。
3.3
3.3.1编辑hosts文件
注销hosts文件里的回环地址127.0.0.1
3.3.2Session复制配置
在所有Tomcat实例中修改server.xml的配置。
#vi/usr/local/tomcat01/conf/server.xml
2)添加配置
在<
tomcat1"
后面加上以下配置。
Tomcat01:
ClusterclassName="
org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="
8"
ManagerclassName="
org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="
false"
notifyListenersOnReplication="
true"
/>
ChannelclassName="
org.apache.catalina.tribes.group.GroupChannel"
MembershipclassName="
org.apache.catalina.tribes.membership.McastService"
address="
228.0.0.4"
port="
45564"
frequency="
500"
dropTime="
3000"
ReceiverclassName="
org.apache.catalina.tribes.transport.nio.NioReceiver"
tomsrv01"
4000"
autoBind="
100"
selectorTimeout="
5000"
maxThreads="
6"
<
SenderclassName="
org.apache.catalina.tribes.transport.ReplicationTransmitter"
TransportclassName="
org.apache.catalina.tribes.transport.nio.PooledParallelSender"
/Sender>
InterceptorclassName="
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"
org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"
/Channel>
ValveclassName="
org.apache.catalina.ha.tcp.ReplicationValve"
filter="
"
org.apache.catalina.ha.session.JvmRouteBinderValve"
DeployerclassName="
org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="
/tmp/war-temp/"
deployDir="
/tmp/war-deploy/"
watchDir="
/tmp/war-listen/"
watchEnabled="
ClusterListenerclassName="
org.apache.catalina.ha.session.ClusterSessionListener"
/Cluster>
tomsrv02"
5000