文档章节

Tomcat 集群搭建

learn_more
 learn_more
发布于 2016/04/05 11:03
字数 986
阅读 153
收藏 12

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1、前期准备

1)Apache请求分发服务器 Web服务器

2)Tomcat 应用服务器

3)jk_mod Apatch的插件,jk_mod 版本一定要和Apatch对应


2、安装Apache

1)下载Httpd

2)解压文件,我的存放在 D:\Apache24

3)修改httpd.conf 所有需要指定路径的地方,尤其是绝对地址使用 D:/ 而不要使用 D:\

4)修改httpd.conf ServerName localhost:80 意思是指定DNS,但是本机没有DNS,就为localhost或IP

5)DOS窗口下,运行Apatch,这样运行的好处是可以看到错误信息,cd D:\Apache24\bin>httpd 

6)打开浏览器,localhost 看看页面是否有 it works


3、安装Tomcat

1)下载Tomcat,因为在本机要开启多个Tomcat,所以需要使用免安装版

2)复制多个Tomcat到本地目录中,本机上开启多个一定要修改端口号,避免端口冲突

3)修改server.xml 更改端口号,如果是不同的服务器上就没必要了,因为IP都不一样了

4)修改server.xml 添加集群配置,这里不同的tomcat,其 jvmRoute 值必须保证不一样

<!-- Define an AJP 1.3 Connector on port 8009,这个端口是上面提到 jk_mod 负载均衡时需要使用 -->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

<!-- You should set jvmRoute to support load-balancing(负载均衡) via AJP ie -->

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

<!-- 集群配置,这里只需要这一句就能搞定,默认采用 HttpSession all-to-all 的同步通知方式 -->

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


4、添加 jk_mod

1)修改httpd.conf 在文件尾部添加 include "D:/Apache24/conf/mod_jk.conf"

2)conf 目录下新建 mod_jk.conf 、 workers.properties ,两个文件的具体内容见下面

3)Apache 安装目录下 modules 目录下粘贴 mod_jk.so 这个版本必须和Apatch保持对应,否则出现错误

line 1 of D:/Apache24/conf/mod_jk.conf: Cannot load modules/mod_jk-1.2.31-httpd-

2.2.3.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xb3\xcc\x

d0\xf2\xa1\xa3

<!--  mod_jk.conf 文件内容-->

# 1)加载mod_jk Module

LoadModule jk_module modules/mod_jk.so

# 2)指定 workers.properties文件路径

JkWorkersFile conf/workers.properties

# 3) 设置日志存放路径  

JkLogFile logs/mod_jk.log

# 4) 设置日志级别 [debug/error/info]  

JkLogLevel info  

# 5) 设置日志格式  

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"  

# 6)JkOptions indicate to send SSL KEY SIZE,  

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories  

# 7)JkRequestLogFormat set the request format  

JkRequestLogFormat "%w %V %T"

# 8)指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器 JkMount /*.jsp controller  

JkMount /*.* controller

<!--  workers.properties 文件内容-->

workers.tomcat1_home=D:/tomcat1

workers.tomcat2_home=D:/tomcat2

worker.list = controller

# tomcat1 配置信息

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

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

worker.tomcat1.type=ajp13 #定向包协议

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

# tomcat2 配置信息

worker.tomcat2.port=20009  #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

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

worker.controller.sticky_session=false 


5、新建web项目

web项目一定要注意,web.xml 中添加 <distributable/>

因为我们这里Tomcat为我们进行了HttpSession的同步,所以可以写个测试HttpSession的例子,比如查看 HttpSession ID

把新建好的项目发布到Tomcat的webapp目录下,每个tomcat都要发布哦,不然怎么是多实例呢


6、启动测试

启动所有的Tomcat

启动Apatch

测试localhost,多刷新几次页面是否负载均衡,是否HttpSession进行了同步

测试节点容错功能,关闭某个tomcat,看看Apache是否还能够进行跳转到其他可用实例,然后又启动Tomcat,又是否能被用


© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
服务器(5)--搭建Solr集群+搭建Zookeeper集群(下篇)

背景:看完《服务器(5)--搭建Solr集群+搭建Zookeeper集群(上篇)》是不是很想知道,Solr集群的搭建过程,别急别急,下面就给大家详细的介绍一下Solr集群的搭建过程。 一、Solr集群的搭建 第...

u013043341
2017/06/04
0
0
Solr初探(6)——SolrCloud

Solr集群,即是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高...

yuanlaijike
2018/04/12
0
0
apache服务器 和 Tomcat的集群搭建处理

近期在公司项目需要集群部署,根据以前的经验及网上收集的资料搭建了集群环境,但是不太符合要求(至少要求是:将所有的Tomcat服务器隐藏在内网,对外暴露的只是Apache服务器),便对Apache、...

lee123lee
2013/08/10
288
0
Java之品优购部署_day01(5)

SolrCloud 2.1 SolrCloud 简介 2.1.1 什么是 SolrCloud SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数...

我是小谷粒
2018/07/09
0
0
Memcached高可用方案收集(集群及分布式)

Memcached的集群方案有很多,不止magent一个,但是单靠集群软件去实现高可用感觉还是会缺少一步,最推荐的方案应该是软件加编码去实现高可用,至少能保证站点的99.5%的可运行行,以下是集群的...

easonjim
2017/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq producer的batch

序 本文主要研究一下rocketmq producer的batch batch rocketmq-client-4.6.0-sources.jar!/org/apache/rocketmq/client/producer/DefaultMQProducer.java public class DefaultMQProducer ex......

go4it
昨天
4
0
Delphi中的延时

开发过程中经常会需要使用到延时功能,Delphi中有不少实现延时的方法,网上已有不少文章做过说明和分析,但本着实践出真知的态度,还是亲自动手研究一番心里比较踏实。 常用的延时方法 Slee...

天朝八阿哥
昨天
4
0
001-Consul

Consul安装(单节点) mkdir -p /data/consulcd /data/consulwget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zipunzip consul_1.6.2_linux_amd64.zip复制c......

伟大源于勇敢的开始
昨天
4
0
nginx + frp 搭建内网穿透

上一个项目是开发微信公众号,由于微信的各种烦人操作,只能到处找内网映射工具 ngrok也用过,花生壳也用过 都不怎么稳定,无意间听说了frp,本着一颗折腾的心搭建了一下,结果发现很不错,就...

lineasy
昨天
7
0
构建CRD工程 - 程序员学点xx 43 k8s

Kubernetes -3- <!--more--> <center>这是yann的第98篇分享</center> [TOC] 本日状态: 帮同事排了一天bug。 Kubernetes -3- <!--more--> 这是yann的第98篇分享 第 1 部分 承前 昨天用视屏的方......

tmp4
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部