apache搭建Tomcat集群(Cluster)

您所在的位置:网站首页 java服务器集群 apache搭建Tomcat集群(Cluster)

apache搭建Tomcat集群(Cluster)

2024-04-20 10:16| 来源: 网络整理| 查看: 265

  搭建集群:

apache:特点处理静态资源(html  图片  js等) apache的请求操作,Cluster工具

 

tomcat:特点处理动态资源

 

apache+tomcat(apache是web服务器,tomcat是应用(java)服务器它是  apache组织在j2EE的JSP和Servlet标准环境下开发的一个JSP服务器)

 

  下载Apache服务器工具并启动

1.打开网页,地址为: http://httpd.apache.org/ 点击Download 界面如下:

 

 

 

 2.选择Stable Release - Latest Version(稳定版本——最新版本),它会自动跳转到当前页面的下载资源版本的位置,选择File for Microsoft Windows版本

 

 

 

 

 

 

 

3.跳转新的页面,选择下载的镜像地址的,提示这个那个地方的镜像,我选择的是第一个是来自德国的地址

 

 

 

4.这个页面点击此处,再次跳转到别的页面之后会进行自动下载。

 

 

 

 

 

 

 

5.下载后,文件如下

 

 

 

如上的操作apache服务工具已经准备就绪。开始准备环境

 

环境准备

 

1.在电脑上的配的盘符,创建一个文件夹再次我取的名称是Cluster里面存放刚刚下载好并已经进行解压的Apache服务工具

 

 

 

 

 2.在conf目录下的httpd.conf文件进行Apache的服务地址配置,定义为宝宝们自己存放的位置

 

 

 

 

 

 

 

3.将apache配置注册为services系统服务

使用管理员身份打开CMD命令行输入: "D:\Cluster\Apache24\bin\httpd.exe" -k install -n apache24(宝宝们可随意编写,但是建议和软件的名称相关,毕竟你们都是专业的)

 

 

 

我第一输入,是因为我的电脑安装了VM,我将它的服务给暂停了

第二次输入,前面提示还是报错,但是具体本人也不清楚,但是后面提示服务显示安装成功。

 

打开电脑的服务,或者win+r键,出现运行窗体,输入services.msc后回车,可以看到我们的系统服务中已经包含了宝宝们刚刚创建的apache的服务名

 

 

 

,当让了,能够创建就能够删除,删除命令为:

sc delete apache24(宝宝们之前创建的名字) 

 

注意:如有宝宝不知道自己的端口被那个软件所占用,简单方法

可以打开任务管理器,点击详细信息

 

 

 

专业必备方法命令:

查看某个具体的端口被占用的情况

netstat -ano | findstr   "80"

 

 

 

 4.以上的操作,厉害的宝宝们应该已经完成了,那么我们就该启动服务了,之后Apache配置完成了。Give Me Five

 

 

 

注意了注意了注意了,到启动的时候很多人会遇见错误,如下所图所示:遇到这种问题,网上有很多的决解方案,而我说一下我遇到这个问题的原因,端口没有被占用可以启动还是报错。

遇到的一些错误

 

 

 

首先打开此电脑——管理——可以查看电脑的应用日志。

 

 

 

 

 

 

 看完之后,我的问题是这样的

 

 

 

 

我根据排错的原因发现,端口没有被占用,而真正的原因就是因为我的D盘下有两个Apache24的文件

一个位置在D:\Cluster\Apache24

另一个位置了在D:\Apache24

所以导致启动报错的原因所在了。所以哦专业的小宝宝们注意细节了!!!

 

5.最后我们可以进行Apache的配置测试了

打开浏览器,输入localhost即可,因为它默认的端口好就是80,出现如下如,恭喜宝宝们,你们已经完美的完成了Apache配置。干的漂亮!!!很棒!!!

 

 

 

 

Cluster通过Web服务器,配置java服务器,接下来进行Tomcat的配置。

 

Tomcat集群搭建

1.将创建的两个Tomcat复制到Clustere文件中去,进行部署,当然了因为是模拟两个不同的Tomcat那么它的名称是不能一样的,需要重命名进行区分。注意: 当本地有两个Tomcat时,我们需要修改端口号,不修改同样的端口号会导致第二个Tomcat启动失败,因为端口被占用了

 

 

 

2.打开Tomcat目录中conf下文件的server.xml进行端口的修改。

注意运行一个Tomcat服务器需要3个端口分别是:servlet:8005、http:8080、ajp:8009三个默认的端口号由于有两个Tomcat名称分别是如下,为它们设置端口号用于区分Tomcat9-A:默认端口号不变Tomcat9-B:9005、9090、9009

 

 

 

 

 

 

 

 

 

3.修改服务器的引擎:Engine(使用Cluster需要配置),还是位于Servlet.xml配置文件中。宝宝们,这次需要两个Tomcat服务器配置都进行修改。

引擎表示处理的入口点(在Catalina中)

每一个要求。Tomcat的引擎实现是独立的

分析请求中包含的HTTP标头,并传递它们

转到适当的主机(虚拟主机)。

文档在/docs/config/engine.html—>

你应该通过AJP ie设置jvmRoute来支持负载平衡

这段话是Tomcat中告诉我们的,如果需要Tomcat支持负载平衡就需要设置jvmRoute,宝宝们接下来我们进行jvmRoute的配置

 

 

 

 

 

 

4.打开集群开关(server.xml)默认为关闭的,将注解去掉即可开启

 

注解中又说如何配置可以参照下面的案例。

位置在Tomcat——webapp——docs——cluster-howto.html

Tomcat——webapp——docs——config——cluster.html

 

 

 

 

最后Tomcat集群配置结束和Apache启动完成之后进行整合。

整合需要一个插件:mod_jk.so

 

再次下载mod_jk.so

 

1.网址为: http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

mod_jk.so这个文件在这个网址下zip的一个文件中。

所以需要先下载这个zip文件,下载完后将它解压找到mod_jd.so放大到Apache24——modules文件下

 

 

 

2.对mod_jk.so进行配置,由于次文件是个二进制文件,那些进行配置就需要重新创建一个properties文件,我在Apache——conf文件下创建一个名为这个的worker.properties文件。进行配置

 

 

 

配置信息如下:

###定义了worket的对象列表,要配置多少个Tomcat就写多个对象列表 都需要在后文进行配置 

###它只是一个标识符,不一定要和Tomcat\conf\下的server.xml中jvmRoute="tomA" 这个名称一样

###因为次文件不是根据jvmRoute来查看的

###controller apache的分流(分配那个Cluster服务器),也叫控制器

worker.list=controller,TomA,TomB

 

###TomcatA

#type 协议类型   mod_jk有4个类型:ajp12、ajp13、jni、lb

worker.TomA.type=ajp13

#负载平衡的比重,比如有100请求,可是服务器是两个,那么可以设置一下多少请求给A,多少请求给B 3-7  5-5

#设置为1那么请求就是两个服务器1比1请求,设置A为1B为2,那么请求就是1给A,2、3请求给B这么轮着来

worker.TomA.lbfactor=1

 

#port服务器协议的端口号 ,此配置和type结合使用,Tomcat的三大端口

#如type=ajp13,此时port的值就是Tomcat服务器中ajp13协议的端口号

worker.TomA.port=8009

 

#host 服务器IP地址,既然是Cluster那么那肯定有自己的服务器地址  ,本机电脑可以写localhost

worker.TomA.host=localhost

 

 

###TomcatB

worker.TomB.type=ajp13

worker.TomB.lbfactor=2

worker.TomB.port=9009

worker.TomB.host=localhost

 

###controller

#控制器没有负载均衡#lb表示这个控制器负载平衡worker,可以设置分流参与负载均衡的Tomcat服务器

#使用controller控制器告诉apache可以分流那些服务器

worker.controller.type=lb

worker.controller.balanced_workers=TomA,TomB

#分布式session策略

#举个例子:宝宝A现在想apache发送了登录的请求,那登录的请求apache是给了我们的TomA这个服务器,那么宝宝A的session

#信息就存储在了TomA服务器上,可以当我们宝宝A再一次请求apache时,这是apache却将请求给了我们TomB这个服务

#器,可是我们TomB服务器上却没有存储宝宝A的Session值,那宝宝A就又需要登录一次了,宝宝A表示好烦,我不要这样

#那就有了session的策略:

#1.sticky策略,绑定分配session,当我们的宝宝A第一次登录时apache分配的服务器是TomA,那么以后都用

#TomA来处理我们宝宝A的信息,可是这样有一个弊端,那就是无法失败迁移,但我们的TomA服务器坏了,

#那么宝宝A的session信息就没有了

#2. session广播(自动同步session)策略:还是我们的宝宝A进行登录,每次登录后不管apache分配给那个服务器,那个服务器都

#将会把apache分配的那个session信息,进行广播传输。就是将这个session的信息自动同步给每个Tomcat服务器都发放一份

#弊端更大,服务器太多,会造成广播风暴(没次保存一个session就要广播给每个服务器,这提高了性能的开销)。

#3.集中管理方式(推荐):在apache和tomcat中添加一个数据库来进行保存session,这样宝宝A每次不管请求

#的是那个服务器,他都可以通过Tomcat服务器的去访问数据库查看宝宝A的session信息是否存在

#True就是sticky策略,false就是session广播策略

 

worker.controller.sticky_session=false

 

 

3.宝宝们不要着急,不要烦躁,我还需要在Apache——conf文件创建一个mod_jk.conf配置,用于加载(1、2两步的配置),之前虽然有了mod_jk.so和它的配置worker.properties,但是需要给他进行加载

 

 

 

#加载mod_jk.so和worker.propertity

 

#加载路径,它的加载路径是从Apache24的根目录开始的

LoadModule jk_module modules/mod_jk.so

 

#加载workers.propertity

JkWorkersFile conf/worker.properties

 

#分流什么  /*分流所有请求(JSP、Servlet)

JkMount /* controller

 

4.宝宝们别急快了,在第3步是已将1、2步进行了读取配置,可以第3步没有人认识它,那么又需要在apache24目录下的conf的httpd.conf配置一下,就是apache程序来认识它自动加载第3步

 

在httpd.conf中最后一行添加

include conf/mod_jk.conf

 

读取这个文件

 

前期工作基本已经完成了,宝宝们幸苦了!!!

 

因为集群主要是为了部署项目的。

 

所以我们创建一个简单的web项目,之后将这个项目发布在tomcatA和tomcatB两个服务其的的部署目录里面\webapps下

 

 

 

一个简单的web项目,它的基本结构如下:

 

 

 

 

 

JSP代码如下:

 

 

    服务器地址

服务器端口

sessionId

 

5.最后一步了,只要在web.xml中加上一句话,就可以让session进行数据的同步了

 

 

最终上面部署了这么久我们可以看到成果了!!!准备测试

启动apache和两个Tomcat服务

这里需要注意一下因为是本地电脑(单机环境)所以环境配置记得需要将之前配置的Tomcat环境CATALINA_Home给删除掉,因为如果加上这个环境变量,那么我们每次启动他使用的都是同一个Tomcat服务器这样是不行的

 

 

 

分别启动Tomcat的服务

 

 

正常启动完成两个Tomcat服务器后之这样的:

 

 

 

 ,如果点击启动闪退,一般是CATALINA_Home环境变量没有删除

 

开始测试:

 

第一次请求:

 

 

 第二次请求:

 

 

 为什么服务器地址为::1了。

C:\Windows\System32\drivers\etc

 

 

最终终于成功进程集群的搭建了,不容易呀!!!!!如用小伙伴不明白的地方可以在评论区@本人,并将问题可以发布到评论区,看到后我会进行答复!!!

所以需要先下载这个zip文件,下载完后将它解压找到mod_jd.so放大到Apache24——modules文件下



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3