使用Apache对Tomcat进行负载均衡

发布时间:2022-07-23 19:34:02 作者:flyfox2k 阅读量:7401

翻译:疯狂的技术宅
原文标题:Load balancing tomcat with Apache
原文链接:http://programmergate.com/loa...
本文首发微信公众号:充实的脑洞

有时候我们需要把自己的应用部署在多个Tomcat实例上,这种场景通常是在使用大量内存进行存储,并且拥有大量的活跃用户时。使用多个实例的主要优点是可以把请求和负载分担到多个节点上,以提供高可用性并加快服务请求。

负载均衡是将客户端请求分发到多个可用节点的过程,通常是通过接收请求的Web服务器将应用程序暴露给客户端,并根据每个节点的可用性和压力将它们分发到配置好的应用程序服务器。 在本文中,我们将介绍如何通过Apache Web服务器配置简单的Tomcat负载均衡器。

1. 安装Tomcat实例

本教程在2台不同的Windows机器上安装2个Tomcat实例。通常可以在同一台机器上配置多个Tomcat实例,但是建议将其分别安装在不同的机器上,以便将负载分配到2个物理内存而不是1个。

2. 下载并安装Apache

从这里下载最新稳定的Apache版本,你可以在其中一台Tomcat机器上设置Apache,或者为其单独分配一台机器。

将下载的文件解压缩到D:盘,并设置conf文件夹下httpd.conf文件中的SRVROOT变量:

Define SRVROOT "D:Apache24"

要安装Apache,请以管理员身份运行cmd,把路径切换到为D:Apache24bin,执行以下命令:

httpd -k install

现在,Apache Web服务器已成功安装在你的计算机上。

要启动Apache,请以管理员身份在D:Apache24bin路径下运行以下命令:

sc start Apache2.4

默认情况下,Apache将在端口80上运行,如果要检查它是否意境成功的启动,可以在你的浏览器上访问localhost,将看到以下页面:

3. 下载mod_jk模块

从这里下载mod_jk模块,这个插件负责Apache和tomcat之间的通信。

解压缩mod_jk.zip文件并将 mod_jk.so 复制到 D:Apache24modules 中。

4. 配置Apache负载均衡

编辑D:Apahe24confhttp.conf 文件

  • 在LoadModule指令末尾添加以下内容:
LoadModule jk_module modules/mod_jk.so
  • 在文件结尾处添加以下内容:
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
 
JkMount /* loadbalancer
JkMount / loadbalancer

workers.properties

在conf目录下创建workers.properties文件,此文件定义了要负载均衡的多个Tomcat实例以及负载均衡器。以下是worker.properties的内容:

# 定义负载均衡器,这里的名称是loadbalancer
worker.list=loadbalancer
 
# Define the properties of first tomcat worker named tomcat1
worker.tomcat1.port=8008
worker.tomcat1.host=<ip>
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
 
# 定义名为tomcat1的第一个tomcat worker的属性
worker.tomcat2.port=8009
worker.tomcat2.host=<ip>
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
 
# 定义负载均衡器及其管理的worker的属性
workers which manage.
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1, tomcat2
  • worker.<workerName>.port: 定义tomcat实例运行的ajp端口。
  • worker.<workerName>.host: Tomcat机器的IP地址或主机名。
  • worker.<workerName>.type: worker的类型,在这个例子中我们使用2种类型的worker

    • ajp13: 该worker直接与tomcat实例通信。
    • lb: 一个负载均衡器worker,负责管理和负载均衡多个ajp13 worker。
  • worker.<workerName>.lbfactor: 定义Tomcat节点的强度,在将请求转发给Tomcat节点时,负载均衡器worker将参考这个值。
  • worker.loadbalancer.balance_workers: 定义要由负载均衡器管理的 ajp13 worker 的名称。

5. 配置Tomcat实例

修改每个Tomcat实例的启动配置,以匹配Apache中相应的工作属性。

将tomcat1的TOMCAT_HOME/conf/server.xml文件编辑为下面的内容:

<!-- Define the http port of tomcat -->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
redirectPort="8443" URIEncoding = "utf-8"/>
 
<!-- Define the ajp port of tomcat, this port should match the one 
in workers.properties -->
<Connector port="8008" protocol="AJP/1.3" redirectPort="8443"   
URIEncoding = "utf-8"/>
 
<!-- Define the jvm routing of tomcat, this routes to tomcat1 -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

将tomcat2的TOMCAT_HOME/conf/server.xml文件编辑为下面的内容:

 
<!-- Define the http port of tomcat -->
<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" 
redirectPort="8143" URIEncoding = "utf-8"/>
 
<!-- Define the ajp port of tomcat, this port should match the one 
in workers.properties -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8143"   
URIEncoding = "utf-8"/>
 
<!-- Define the jvm routing of tomcat, this routes to tomcat2 -->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

重启tomcat节点和Apache服务器后,会成功建立负载均衡,Apache可以把请求转发到在Tomcat1和Tomcat2上

PS: 该应用程序通过Apache主机名和端口访问。

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2023-07-23 03:49:42

服务器硬件参数是决定服服务器机柜宽度 务器性能的虚拟机搭建dns服务器 参数是决定服务器性能的主要因素


评论时间:2023-03-10 00:25:01

16.不要过度劳累17.不要滥用药物18.保持良好的心态19.按时吃饭20.不喝酒21.不饥荒联机云服务器搭建 吸烟22.不熬夜支持dll注册的虚拟主机 累17.不要滥用药物18.保持良好的心态19.按时吃饭20.不喝酒21.不吸烟22.不熬夜23.少吃多餐


评论时间:2023-02-23 06:25:02

虚拟主机要多少钱的合适 4.数据安全性高英国虚拟主机


评论时间:2023-02-10 06:25:01

目前国内流行的数据库管理系统大多采用最便宜的虚拟主机国内 B/S结构,即由多个用户通过浏览器流媒体服务器搭建教程 /S结构,即由多个用户通过浏览器


评论时间:2023-01-09 21:25:01

而随着网络技术和计算机软硬件水平不断提高,现在越来越多的人已经开始使用服务器了,那么服务器怎么查找呢?下面就来给大家介绍一下吧!首先,打开浏览器进入“我的电脑-管理工便宜虚拟主机优惠 具--用户管理”亿网互联虚拟主机 了,那么服务器怎么查找呢?下面就来给大家介绍一下吧!首先,打开浏览器进入“我的电脑-管理工具--用户管理”

最新文章

 2023-12-25 22:44:35   admin

活动发布区版规

 2023-05-27 22:03:52   御风而行

容器、无服务器、虚拟机:安全性差...

 2023-05-27 19:08:41   小绵羊0123

科技巨头布局云端 服务器 网络硬...

 2023-05-27 18:17:46   姐姐的跟屁虫

钉钉因系统访问流量激增,宕机1小...

热门阅读

 2022-07-23 00:34:02   freeatom

常见ftp命令 FTP命令使用详...

 2022-07-21 02:17:02   ares

双硬盘组建Raid0磁盘阵列图文...

 2022-07-20 06:17:02   mankeung123

用友软件客户端连接不上服务器的解...

 2022-07-23 00:51:02   antonfxb

WebService实例

 2022-07-13 05:38:02   苯小孩

开发、运维不可不看的Linux调...

 2022-07-20 18:51:02   nightstone

如何使用Charles抓取Web...

随机文章

 2021-12-20 20:28:07   嫣Moira

杭州服务器托管公司有哪些?

 2022-01-12 05:38:03   wwwwycom

重庆双线服务器托管那家比较好

 2022-02-12 05:38:02   暴走中

Nginx下配置基于域名的虚拟主...

 2022-02-26 05:38:02   seaer

Nginx的启动、停止

 2022-03-03 05:38:02   jyuu

安装文件服务器

 2022-03-27 05:38:02   雪山飞蟹

ftp服务器怎么用

热评文章

 2022-07-19 20:17:02   dengyu0429

linux vi使用及详细介绍

 2022-07-20 01:00:05   激动的舌头

Linux视频教程:用户管理命令...

 2022-07-21 20:51:02   jessica-an

创建本地FTP站点

 2022-02-07 05:38:03   jasonkidd

WEB服务器配置详解

 2022-07-20 04:51:02   wolfssss

ACL权限-默认与递归(4)

 2022-07-22 15:00:05   淡水珊瑚

Linux下 Samba Ser...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3