集群:
apache、nginx
tomcat: 理论上 单节点tomcat能够稳定的 处理请求并发量 200-300
集群的好处
负载均衡
失败迁移
服务端集群方式:
水平集群:将服务器安装在各个不同的计算机上(失败迁移)
垂直集群:将多个服务器安装在同一个计算机上(负载均衡)
搭建集群:
apache:特点是处理静态资源 html 图片 js 这里的apache是一个服务器工具,
tomcat: 特点是处理动态资源
apache+tomcat: 动静分离
apache:对请求进行分流操作
集群配置
需要的文件:
1.apache
2.tomcat
3.整合需要的文件mod_jk.so
apache
下载地址 : httpd.apache.org
点击download
点击版本号
点击file for window
点击ApacheHaus
选择一个版本进行下载
下载完成后解压
tomcat
之前写过tomcat的配置,这里只需要参考下载的部分
https://blog.csdn.net/weixin_44643735/article/details/102683175
整合需要的文件mod_jk.so
下载地址:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
Ctrl+F 检索httpd 靠下面的比较新一点
下载完成后解压得到这个文件
需要的文件都有了,开始进行配置
先创建一个文件夹,将apache和tomcat放到一起
tomcat就是复制一份,名字区分一下就行了
先从tomcat开始配置,
每个tomcat服务器要设置三个端口号,两个要区分开
修改端口 server端口 http协议端口 ajp端口
tomcata: 1005 1080 1009
tomvatb: 2005 2080 2009
--------->打开D:\study\cluster\ tomcat-9-a\conf\server.xml
tomcat-a的xml文件
共需要配置:
3个端口号,一个引擎的jvmRoute 路由名字 和打开集群开关
端口
引擎
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcata">
打开集群开关就在它下面,已经写好了 只需要将注释去掉
tomcat-b的配置文件和tomcat-a一样,名字改了,端口号改了即可
开始配置Apache24
先将下载好的 mod_jk.so 文件放以下路径的文件夹中
D:\study\cluster\Apache24\modules
在D:\study\cluster\Apache24\conf文件下新建一个配置文 workers.properties
在文件中写入以下键值对
代码
worker.list=controller,tomcata,tomcatb
#tomcat-9-a
worker.tomcata.port=1009
worker.tomcata.host=localhost
worker.tomcata.type=ajp13
#负载均衡的权重
worker.tomcata.lbfactor=1
#tomcat-9-b
worker.tomcatb.port=2009
worker.tomcatb.host=localhost
worker.tomcatb.type=ajp13
#负载均衡的权重
worker.tomcatb.lbfactor=2
#controller
worker.controller.type=lb
worker.controller.balanced_workers=tomcata,tomcatb
worker.controller.sticky_session=false
保存关闭
再新建一个配置文件 mod_jk_conf
写入加载程序
程序
#加载mod_jk.soworkers.properties
LoadModule jk_module modules/mod_jk.so
#加载workers.properties
JkWorkersFile conf/workers.properties
JkMount /* controller
保存关闭
打开: httpd.conf (该文件是程序运行时的加载文件,将配置文件写进去让程序自动加载)
Ctrl+f 检索关键字Define SRVROOT 将你自己文件的存放路径填写上
在该文件的最后加上一句代码:
include conf/mod_jk.conf
如图
最后
将apache的程序注册到windows服务中
以管理员身份打开cmd 通过命令注册apache服务
“D:\study\cluster\Apache24\bin\httpd.exe” -k install -n apache24
如果需要删除服务: sc delete 服务名
Web工程
在tomcat中新建一个最简单的web工程 只要一个index.jsp页面即可
在该文件夹下新建一个文件夹 作为项目名称
D:\study\cluster\tomcat-9-a\webapps
一个项目最少要包含一个WEB-INF文件 该文件下还要有一个web.xml文件
还需要一个index.jsp 首页
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<distributable/>
</web-app>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>tomcat-a</title>
</head>
<body>
服务器地址:
<%
out.print(request.getRemoteAddr()+","+request.getLocalPort());
%><br/>
sessionID:
<%
out.print(session.getId());
%>
</body>
</html>
基本配置完毕
启动apache服务:
右键 此电脑 选择管理
打开服务与应用程序 点击服务
右键启动即可
启动tomcat-a tomcat-b
在该文件下 \tomcat-9-a\bin\ 双击startup.bat
即可启动服务
另一个服务器的启动方式一样
注意:
启动前 先删除系统环境变量中的CATALINA_HOME 否则会自动启动指定的tomcat (在单机环境下)
此时,就可以打开浏览器,访问我们的项目了
localhoat/ClusterProject/ 后面的是你自己的web项目名称
刷新,会根据服务器的权重将访问请求分配给服务器 但用的是同一个session
可以将客户端的请求分配到不同的服务器 实现了负载均衡
关闭其中一个服务器,网页还能继续使用 实现了失败迁移
最后 关于命名问题
项目目录名: 任意
jvmRoute: tomcat路由 两个服务器的名字只要不重复即可
workers.properties: worker.list=controller,tomcata,tomcatb
worker.tomcata.port=1009
worker.tomcatb.port=2009
apache是根据tomcata的port值, 找到对应端口号的服务器