您的位置:首页 > 运维架构 > Tomcat

Apache+mod_jk+多个tomcat负载均衡

2015-09-29 14:58 459 查看
下载Apache2.4,解压到自定义目录,如:C:/lamp/Apache24

1.cmd运行,c:\lamo\Apache24\bin\httpd -k install加载APache服务;

2.C:/lamp/Apache24/conf/httpd.conf文件,找到行Define SRVROOT "/Apache24",将其路径改为Apache24存放目录Define SRVROOT "c:/lamp/Apache24",保存

3.启动Apache2.4服务:net start Apache2.4

4.Apache安装完成

下载mod_jd

1.在网上随便找个mod_jk.so文件,copy到C:/lamp/Apache24/modules目录下

下载apache-tomcat-7.0.64

1.这里准备两个同版本tomcat:

apache-tomcat-7.0.64-1,apache-tomcat-7.0.64-2

配置

1.在目录C:/lamp/Apache24/conf下创建这几个文件mod_jk.conf、workers.properties

2.mod_jk.conf里面加入内容:

#加载mod_jk Module

LoadModule jk_module modules/mod_jk.so

#指定 workers.properties文件路径

JkWorkersFile conf/workers.properties

3.workers.properties加入内容:

#server 列表

worker.list=controller,tomcat1,tomcat2

#========tomcat1========

worker.tomcat1.port=8019 #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1 #server的加权比重,值越高,分得的请求越多

#========tomcat2========

worker.tomcat2.port=8029 #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1 #server的加权比重,值越高,分得的请求越多

#========controller,负载均衡控制器========

worker.controller.type=lb

#指定此负载平衡器负责的Tomcat应用节点。

worker.controller.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcat

#此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台

#Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。

worker.controller.sticky_session=false #设为false,则表明需求会话复制。

4.tomcat server.xml文件,找到如下几行,红色部分内容都是跟源文件发生变化的内容

tomcat1:

<Server port="8015" shutdown="SHUTDOWN">

<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" /> //此处tomcat 端口8019对应workers.properties配置端口对应

<Engine name="Catalina" defaultHost="localhost"
jvmRoute="tomcat1"> //此处tomcat对应workers.properties文件配置的tomcat

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> // 源文件被注释掉了,将其打开

/*提示 两个tomcat对应端口不要冲突

tomcat2:

<Server port="8025" shutdown="SHUTDOWN">
<Connector port="8091" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8029" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost"jvmRoute="tomcat2">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
5.

C:\tomcat\apache-tomcat-7.0.64-1\webapps下放p1/test.html,里面输入内容“我是项目1”

C:\tomcat\apache-tomcat-7.0.64-2\webapps下放p2/test.html,里面输入内容“我是项目2”

启动以下服务

1.加载tomcat服务,tomcat存放目录C:/tomcat

cmd执行命令cd C:\tomcat\apache-tomcat-7.0.64-1\bin回车

继续执行service install tomcat1

net start tomcat1

cmd执行命令cd C:\tomcat\apache-tomcat-7.0.64-2\bin回车

继续执行service install tomcat2

net start tomcat2

打开浏览器,输入地址localhost:8090/p1/test.html,展现结果为“我是项目1”;输入地址localhost:8090/p2/test.html,展现结果为“我是项目2”

附加:

若有具体项目:在server.xml Host里面加入<Context path="" docBase="" privileged="true"/>项目访问路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: