搭建集群:

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的配置

<!-- defaultHost 代表一个虚拟机主机 jvmRoute jvm路由功能,请求给了apache,apache它是怎么进行查看是那个Tomcat服务器,它可以通过我们配置的路由名称进行设置  -->

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代码如下:

<body>

</br>

服务器地址

<%

out.print(request.getRemoteAddr());

%>

</br>

服务器端口

<%

out.print(request.getLocalPort());

%>

</br>

sessionId

<%

out.print(session.getId());

%>

</body>

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

<distributable />

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

启动apache和两个Tomcat服务

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

分别启动Tomcat的服务

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

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

开始测试:

第一次请求:

第二次请求:

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

C:\Windows\System32\drivers\etc

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

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

apache搭建Tomcat集群(Cluster)的更多相关文章

  1. 使用apache搭建tomcat集群

    1.安装apache 1.1 下载ApacheX64.rar,并解压 1.2 修改Apache24\conf\httpd.conf文件 配置根目录: 配置ip和端口 1.2 安装apache服务器 以 ...

  2. Linux下搭建tomcat集群全记录(转)

    本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...

  3. nginx的简单使用和使用nginx在windows上搭建tomcat集群

    nginx是一款轻量级的web服务器,常用的作用为服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器 1.为什么我们要使用Nginx? 反向代理: 反向代理(Reverse Proxy ...

  4. linux下利用httpd搭建tomcat集群,实现负载均衡

    公司使用运营管理平台是单点tomcat,使用量大,或者导出较大的运营数据时,会造成平台不可用,现在需要搭建tomcat集群,调研后,决定使用apache的httpd来搭建tomcat集群.以下是搭建步 ...

  5. Linux下搭建tomcat集群全记录

    (转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...

  6. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...

  7. Tomcat集群---Cluster节点配置(转)

    <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. cha ...

  8. 【转】Tomcat集群Cluster实现原理剖析

    此文章来源:http://zyycaesar.iteye.com/blog/296606 此文章作者:zyycaesar 对于WEB应用集群的技术实现而言,最大的难点就是如何能在集群中的多个节点之间保 ...

  9. Apache配置tomcat集群

     APACHE 2.2.9+TOMCAT6.0配置负载均衡 目标: 使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求: 1. Apache 做为 HttpSe ...

随机推荐

  1. CentOS-SendMail服务

    title date tags layout music-id CentOS6.5 SendMail服务安装与配置 2018-09-04 Centos6.5服务器搭建 post 456272749 一 ...

  2. Linux下rabitMq的部署(源码安装)

    简版yum安装:https://www.jianshu.com/p/46c22834aad5 一.环境安装 1,安装预环境 通过yum安装以下组件,运行命令: [root@rabbitmqserver ...

  3. Nuxt.js 踩坑笔记 - 缓存向

    零.前言 最近参与了一个立足 seo 的移动端项目,公司前端工程主栈 vue,所以理所当然的用上了 nuxt,UI 主要选择了 Vant.   一.公共列表页的缓存 公共列表页由于数据量较大,故需要滚 ...

  4. get 传中文,可以通过下面这种方式

    window.location.href=encodeURI("<%=path%>/XXX.XXX?name=中文"); 然后在后台通过new String(reque ...

  5. 教你如何将txt复制到excel的各个单元格;并解决科学计数法显示问题及导致的个位数变0问题

    1.如果你的txt或log等文件中的数据每个数据刚好都回车了,那么直接粘贴到excel即可: 2.如果你的txt或log等文件中数据较多,回车之后的每一行数据仍需再次分列,那么要求:每一行中需要分列的 ...

  6. ChatterBot聊天机器人呢结构(五):ChatterBot对话流程

    原文地址:http://www.bugingcode.com/blog/ChatterBot_Dialogue_process.html 创建机器人 部署机器人的各种属性,根据前面的章节里聊天机器人的 ...

  7. Scrapy初体验(一) 环境部署

    系统选择centOs 7,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, ...

  8. MySQL5.7主从复制slave报Last_Errno: 1146错误解决

    前提:由于slave磁盘未及时扩容原因导致磁盘即将写满,为了不影响业务将slave实例里一个10G的库drop了(项目前期建的库,数据现在已不使用了),然后又drop了master上的该库(对于大库建 ...

  9. SIM卡的消失会让运营商们恐慌吗?

    ​中国移动.联通.电信三大运营商原本高高在上,每天乐滋滋地数钱数到手抽筋,但近年来移动互联网的快速普及,让运营商的制霸状态不复存在.成为众多互联网公司的"流量通道",语音.短信等业 ...

  10. android 中webview的屏幕适配问题

    两行代码解决WebView的屏幕适配问题 一个简单的方法,让网页快速适应手机屏幕,代码如下 1 2 WebSettings webSettings= webView.getSettings(); we ...