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

Apache+Tomcat集群部署

2016-12-27 08:40 176 查看
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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息