阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建




《 Apache + Tomcat 实现Web服务器集群的构建 》



阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第1张图片




前言
在应用系统部署环境中使用 Apache + Tomcat 实现集群,这样可以很好的实现业务的横向扩展,在 Apache 与 Tomcat 之间使用 JK 进行连接的《 Apache+Tomcat 实现负载均衡/反向代理 》,JK 实则是一个连接器,也可以看作一个通道。
Tomcat 集群的节点间通过组播的方式进行节点的查找并使用 TCP 连接进行会话的复制的,所以一个集群的节点数不宜过多,因为节点间在不断的互相组播和会话复制




系统环境
Windows 版本:Windows Server 2008 R2 x64
JDK 版本: Jdk-1.8 x64 (这儿在安装 Apache 时,可能会遇到异常,先将JDK换为32位的,等Apache安装完成后,再将JDK改为64位的即可)
Apache 版本: Apache/2.4.29 (Win64)
Tomcat 版本: Apache-Tomcat/8.0.30





基本环境准备
1、JDK 环境安装 《 第二篇:Java运行环境搭建 》
https://blog.csdn.net/hello_world_qwp/article/details/78781494


2、Apache 服务器安装与配置 《 Apache-2.4.33单机版配置详解 》 注意:安装路径不要中文和空格哟!!!
https://blog.csdn.net/hello_world_qwp/article/details/79722764


3、Tomcat 集群的配置
1)、首先保证两个 Tomcat 同时启动,可以参考 《 Linux 下并行运行多个 Tomcat 的配置详解 》 主要注意端口修改情况!!!
https://blog.csdn.net/hello_world_qwp/article/details/79453833
这儿集群为两个节点,分别为 TomcatA 和 TomcatB。


2)、然后再开启 Tomcat 《 Windows下搭建Tomcat集群基础入门详解 》
https://blog.csdn.net/hello_world_qwp/article/details/79748646


4、这儿使用的是 jk 连接器,所以需要下载
《 mod_jk.so 1.2.40-win64bit-httpd-2.4.x 连接器下载 》https://download.csdn.net/download/hello_world_qwp/10123765
《 mod_jk.so 1.2.37-win32bit-httpd-2.2.x 连接器下载 》https://download.csdn.net/download/hello_world_qwp/10123760
 ,下载完成后复制到 Apache 的 modules 目录下,并重命名为 mod_jk.so


Apache + Tomcat 实现集群配置
1、修改 Apache 的配置文件 httpd.conf,该配置文件在 Apache 根目录下的 conf 文件夹中,在配置文件末尾追加如下内容:

# 这条如果没有,则加上
AddDefaultCharset UTF-8
# 加载mod_jk模块
LoadModule jk_module modules/mod_jk.so
# 加载 mod_jk 配置文件
Include conf/mod_jk.conf



如下图:

阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第2张图片


2、在 Apache 的配置文件目录中新建 jk 配置文件 mod_jk.conf,并键入如下内容:

# jk的 worker 参数文件
JkWorkersFile conf/workers.properties

# jk 日志文件
JkLogFile logs/mod_jk.log
# 设置jk日志级别 [debug/error/info]
JkLogLevel info
# 输出的日志格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# 指定 SSL 密钥大小
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat 设置请求格式 
JkRequestLogFormat "%w %V %T"
JkMountFile conf/uriworkermap.properties


如下图:

阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第3张图片




3、新增 jk workers.properties 参数配置文件,这个也算是抽象出来的吧,主要是 Apache 的负载均衡/反向代理的一些配置,在这个配置文件中还可以通过配置权重 ,来实现集群的重新再平衡,键入内容如下:

#========controller,负载均衡控制器======== 
worker.list = controller,jkstatus,tomcatA,tomcatB


#========tomcatA========
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcatA.port=自己端口
#tomcat的主机地址,如不为本机,请填写ip地址  
worker.tomcatA.host=自己IP
worker.tomcatA.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcatA.lbfactor = 1


#========tomcatB========
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcatB.port=自己端口
#tomcat的主机地址,如不为本机,请填写ip地址  
worker.tomcatB.host=自己IP
worker.tomcatB.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcatB.lbfactor = 1
 
#========controller,负载均衡控制器========
#指定分担请求的tomcat  
worker.controller.type=lb
worker.controller.balanced_workers=tomcatA,tomcatB
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1


#集群状态监控配置
worker.jkstatus.type=status
worker.jkstatus.read_only=1



如下图:

阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第4张图片




注意:这儿还需要在 conf 目录下新增 jk uriworkermap.properties 参数配置文件,主要用于设置请求的格式,新增键入内容如下:
/*=controller
/jkstatus=jkstatus
还可以新增其他的格式,就不再这儿一一的列举了。


4、测试集群中的Session是否实现了 Session 的多播和 Session 的复制,Apache + Tomcat 的集群配置完成后,启动 Apache 服务器和 两个 Tomcat 服务器,然后再浏览器地址栏直接输入服务器的IP地址或者 域名进行访问,一直刷新,会有意想不到的变化哟,如下图:

当Tocmat服务器A提供处理请求时:



当Tocmat服务器B提供处理请求时:





当然也可以将信息打印到页面进行查看,在页面中加入内容如下:

<%
out.println("
server info :" + request.getLocalAddr() + " : " + request.getLocalPort() + "
");%> out.println("
jsessionid " + session.getId()+"
"); <%




总结
本篇博客是通过在真实环境中操作并记录下来的,期间遇到了很多问题(绊脚石),最后都通过不懈的努力,都一一解决了,并进行了总结,
这些总结我总共花了一个周的时间(5个工作日),希望能对正在阅读此篇文章的人有所帮助,在一个就是在这个开发的道路上通过这种方式让自己走的更远一些,通过输出的方式倒逼输入。


问题总结如下,如果你在搭建的过程中,也遇到相似的问题,可以点击连接查看解决方案:


问题一:无法启动程序,因为计算机中丢失 VCRUNTIME140.DLL

如下图:

阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第5张图片

解决方案:《 计算机中丢失 VCRUNTIME140.DLL 》


问题二:Windows 不能在 本地计算机 启动 apache24。

如下图:

阿里云服务器 ECS 第八篇:Apache + Tomcat 实现Web服务器集群的构建_第6张图片

解决方案:《 Windows 不能在 启动 apache 》


问题三:503 Service Unavailable

如下图:

解决方案:《 503 Service Unavailable 解决办法 》



Apache+Tomcat集群配置源文件下载:《 Apache + Tomcat 实现Web集群环境(负载均衡/反向代理) 》
注:下载完成后三步走轻松实现项目的集群部署:
1)、安装上面的操作步骤,先安装 Apache 并保证其能够正常启动。
2)、在配置配置好Tomcat的环境变量,并保证两个Tomcat能并行启动,并能通过IP或域名访问正常。
3)、最后将Tomcat的项目部署路径指向 应用程序,这儿还可以配置多个项目哟!!!











好了,关于 Apache + Tomcat 实现Web服务器集群的构建 就写到这儿了,祝你马到成功!如果还有什么疑问或遇到什么问题,可以给我留言。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。

你可能感兴趣的:(ECS,Tomcat_Windows,Apache_Windwos,企业上云系列详细教程(阿里云,ECS))