1.准备集群环境
a.准备Apache服务器,tomcat与mod_jk文件,这里我是在windows64位的环境上搭建可以从网上下载或者在Apache 2.4.23 Win64,mod_jk 1.2.41,tomcat 7.0.26进行下载
这里我下载到了D:\LoadBalance目录下
b.将Apache 2.4.23 Win64解压,获得 Apache24 文件夹,这里暂且将此文件夹拷贝至C盘根目录下,因为apache服务器配置文件中默认的路径为C盘下的Apache24文件夹,如下图为httpd.conf文件中的部分配置,如需要将其 安装在其他路径下则需要修改这些配置,这里为了省事儿没有修改
c.将mod_jk1.2.41解压,并将解压出的mod_jk.so拷贝至 Apache24的modules目录下
2.配置文件修改
a.在Apache安装路径下的conf文件夹中新建mod_jk.conf 并增加内容:
--------------------------------mod_jk.conf----------------------------------------
#指定 workers.properties文件路径
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制
jkMount /SKServer/* controller
JkMount /*.jsp controller
JkMount /*.do controller
--------------------------------------------------------------------------------------
b.在Apache安装路径下的conf文件夹中新建workers.properties
--------------------------------------workers.properties--------------------------
#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=8009 #ajp协议的端口,如果2个tomcat部署在同一个服务器中,那个ajp端口需要不同
worker.tomcat1.host=127.0.0.1 #tomcat的所在主机的ip,如果是本机,则写本机的ip即可
worker.tomcat1.type=ajp13 #协议类型
worker.tomcat1.lbfactor=1 #负载因子
#========tomcat2========
worker.tomcat2.port=8019
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1 #如果多个tomcat,该参数相同,表示等比例,如果想tomcat负载多一点,只要把这个参数改的大一点即可,具体多少还是得看情况
#========tomcat3========
worker.tomcat3.port=8029
worker.tomcat3.host=127.0.0.1
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.retries=3 #请求失败以后重试次数
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3 #controller控制的tomcat的名称,分别为tomcat1和tomcat2,由tomcat中的server.xml中设值
worker.controller.sticky_session=false #回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理
worker.controller.sticky_session_force=false #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息
----------------------------------------------------------------------------------------------
c.打开conf文件夹中的httpd.conf,在最末尾处加上:
LoadModule jk_module modules/mod_jk.so
Include "C:/Apache24/conf/mod_jk.conf"
3.修改tomcat配置
a.若在一台服务中部署多个tomcat则需要修改server.xml文件
确保 <Server port="8005" shutdown="SHUTDOWN">
<CONNECTOR port="8080"
<CONNECTOR port="8009"
这三个端口在同一台服务器上不能冲突,我在这里将第三位顺序加1解决,比如8105,8180,8109;8205,8280,8209。。。
b.
<Connector port=
"8009" 节点中加入jvmRoute=
"tomcat1"属性
如果多个tomcat部署在同一个服务器中,此处的ajp协议端口必须不一样,并且需要增加jvmRoute属性,该属性的值即为workers.properties中的tomcat的名称
<Connector port=
"8009"
protocol=
"AJP/1.3"
redirectPort=
"8443"
jvmRoute=
"tomcat1"
/>
c. server.xml配置文件中的<Cluster>节点的注释去掉
d. 应用中的web.xml中必须添加<distributable/>属性,用于告诉web容器,该项目属于分布式项目,不然无法session replication
4.安装Apache以及注册apache服务
a.修改conf目录下httpd.conf文件,找到ServerName localhost:80 将ip地址与端口号修改为正确的值
b.cmd打开命令行窗口,切换到apache安装目录的bin目录下,
执行:httpd.exe -k install 安装apache服务器
c.执行:httpd.exe -n "Apache2.4" –t 注册Apache2.4为windows服务
d.执行:httpd.exe -w -n "Apache2.4" -k start 启动已安装的apache服务
e.测试安装结果,在浏览器输入http://localhost:port 显示
f.若配置文件修改,则需要重启服务后才能加载
执行:httpd.exe -k restart