超详细!Apache+Tomcat+mod_jk搭建负载均衡集群

news2025/2/27 8:37:29

目录

 0.流程图:

1.集群环境:

2.Apache服务器安装httpd:

3.tomcat1服务器和tomcat2服务器安装jdk和Tomcat

4.tomcat1服务器和tomcat2服务器创建页面:

5.Apache服务器的mod_jk模块的安装:

6.查看是否mod_jk.so模块安装成功:

7.apache服务器配置jk模块,实现Apache整合tomcat:

8..tomcat1服务器和tomcat2服务器开启端口:

9..启动apache和tomcat测试:

10.Apache服务器上访问测试:


 0.流程图:

 

1.集群环境:

服务器IP地址端口版本
Apache服务器192.168.178.5280yum默认
tomcat1服务器192.168.178.1018080apache-tomcat-8.5.20
tomcat2服务器192.168.178.1518080apache-tomcat-8.5.20

2.Apache服务器安装httpd:

yum install -y httpd
# 静态页面
echo "<h1>static_page_from_apache</h1>" > /var/www/html/index.html
# 访问
http://192.168.178.52/

3.tomcat1服务器和tomcat2服务器安装jdk和Tomcat

jdk1.8和Tomcat的两种安装方式_碧蓝幻想的博客-CSDN博客

4.tomcat1服务器和tomcat2服务器创建页面:

# tomcat1的动态页面
echo "<h1>my_tomcat11111</h1>" > /usr/local/tomcat/webapps/ROOT/test.jsp
# 访问
http://192.168.178.101:8080/test.jsp
# tomcat2的动态页面
echo "<h1>my_tomcat22222</h1>" > /usr/local/tomcat/webapps/ROOT/test.jsp
# 访问
http://192.168.178.151:8080/test.jsp

5.Apache服务器的mod_jk模块的安装:

JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009

jk模块的三个配置文件说明
httpd.confApache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息
workers.properties到 Tomcat 服务器的连接定义文件
uriworkermap.propertiesURI 映射文件,用来指定哪些 URL 由 Tomcat 处理
wget -c https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz --no-check-certificate
tar xf tomcat-connectors-1.2.48-src.tar.gz -C /usr/local/src/
cd /usr/local/src/tomcat-connectors-1.2.48-src/native/
yum install -y httpd-devel     # httpd-devel提供apxs命令
yum provides apxs
yum install gcc gcc-c++ make -y     # 编译需要编译环境
./configure --with-apxs=/usr/bin/apxs
./configure --with-apxs=/usr/bin/apxs

6.查看是否mod_jk.so模块安装成功:

[root@localhost native]# find / -name mod_jk.so
/usr/lib64/httpd/modules/mod_jk.so                 # make install后出现
/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/.libs/mod_jk.so        # make后出现
/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/mod_jk.so              # make后出现

7.apache服务器配置jk模块,实现Apache整合tomcat:

以下配置文件请删除字段后面的注释

cat << eof > /etc/httpd/conf.d/mod_jk.conf
LoadModule jk_module modules/mod_jk.so                       # 加载模块
JkWorkersFile conf/workers.properties                        # 指定mod_jk的配置文件之一workers.properties
JkLogFile /var/log/httpd/mod_jk.log                          # 指定mod_jk的日志
JkLogLevel info                                              # 日志级别
JkShmFile /var/log/httpd/mod_jk.shm                          # 配置jk日志内存共享
JkRequestLogFormat "%w %V %T"

# 将所有的请求转发给balancer处理
JkMount /*.jsp balancer

eof
# 到 Tomcat 服务器的连接定义文件
cat << eof > /etc/httpd/conf/workers.properties              
#worker的变量
worker.list=balancer,jk_watcher,tomcat1,tomcat2

#tempalte 负载模板配置  
worker.template.type=ajp13
#worker全局的重试次数,在apache服务器启动后,会最多尝试若干次连接这些负载均衡服务器,若连接不上则任务down掉
worker.retries=3

#balancer 负载配置  
worker.balancer.type=lb
worker.balancer.balance_workers=tomcat1,tomcat2
worker.balancer.sticky_session=true

#tomcat1的配置  
worker.tomcat1.port=8009
worker.tomcat1.host=192.168.178.101
worker.tomcat1.reference=worker.template
worker.tomcat1.activation=A
#worker.tomcat1.lbfactor=1    #lbfactor值越大,表示被分配的负载越大
#tomcat2 的配置  
worker.tomcat2.port=9009
worker.tomcat2.host=192.168.178.151
worker.tomcat2.reference=worker.template
worker.tomcat2.activation=A
#worker.tomcat2.lbfactor=1    #lbfactor值越大,表示被分配的负载越大

#负载均衡监视器
worker.jk_watcher.type=status
worker.jk_watcher.read_only=false
worker.jk_watcher.mount=/jkStatus
eof

8..tomcat1服务器和tomcat2服务器开启端口:

注意此内容在 <Connector port="8080" protocol="HTTP/1.1"内

vim /usr/local/tomcat/conf/server.xml
# tomcat1修改内容
<Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
.....
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
# tomcat2修改内容
<Connector protocol="AJP/1.3"
               address="::1"
               port="9009"
               redirectPort="8443" />
.....
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

9..启动apache和tomcat测试:

启动错误可能是因为配置文件字段后面的空格和注释

systemctl restart httpd
systemctl restart tomcat

10.Apache服务器上访问测试:

[root@localhost conf.d]# for i in {1..10..1};do curl http://192.168.178.52/test.jsp;done
<h1>my_tomcat22222</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat11111</h1>
<h1>my_tomcat22222</h1>
<h1>my_tomcat11111</h1>
<h1>my_tomcat22222</h1>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DMDSC问题测试

问题一&#xff1a;手动停止两节点&#xff0c;单独启动节点二测试 集群停库前状态&#xff0c;登录监视器查看 dmcssm INI_PATHdmcssm.ini show 节点一&#xff1a; [dmdbalocalhost ~]$ DmServiceDMSERVER stop Stopping DmServiceDMSERVER: …

Go语言开发小技巧易错点100例(六)

往期回顾&#xff1a; Go语言开发小技巧&易错点100例&#xff08;一&#xff09;Go语言开发小技巧&易错点100例&#xff08;二&#xff09;Go语言开发小技巧&易错点100例&#xff08;三&#xff09;Go语言开发小技巧&易错点100例&#xff08;四&#xff09;Go…

微信小程序开发-云开发降低资源调用次数

问题 微信小程序云开发是很方便&#xff0c;减少了后端的大量工作&#xff0c;但是&#xff01; 流量主的一点广告费&#xff0c;一不小心就全被腾讯薅走了&#xff01;当然一种办法就是使用云服务器自建后端&#xff0c;也要付费&#xff0c;没有对比过&#xff0c;不知道各…

如何在移动应用中集成美颜SDK实现人脸识别和美化功能?

随着移动应用的普及和人们对美的追求&#xff0c;美颜功能已成为很多应用的必备功能。而为了实现这样的功能&#xff0c;开发者需要使用美颜SDK。本文将从以下几个方面介绍如何在移动应用中集成美颜SDK实现人脸识别和美化功能。 一、美颜SDK的介绍 美颜SDK是一种用于美化人脸的…

应用程序接口(API)安全的入门指南

本文简单回顾了 API 的发展历史&#xff0c;其基本概念、功能、相关协议、以及使用场景&#xff0c;重点讨论了与之相关的不同安全要素、威胁、认证方法、以及十二项优秀实践。 根据有记录的历史&#xff0c;随着 Salesforce 的销售自动化解决方案的推出&#xff0c;首个 We…

缩短客户响应时间的 5 种方法

在当今竞争激烈的世界中&#xff0c;客户服务就是确保卓越的客户体验。这意味着顶级品牌必须竞争为客户提供最好的客户服务&#xff0c;而且提供最快的响应时间。 改善客户服务响应时间的 5种方法 1.使用正确的客户服务软件 客户服务软件是您可以为提高客户服务而进行的最佳投资…

手写Spring框架-前奏-注解与自定义注解

目录 注解 介绍 功能 分类 注解处理器类库 自定义注解 常用元注解 自定义 注解 介绍 提供一种为程序元素设置元数据的方法用来将任何的信息或元数据&#xff08;metadata&#xff09;与程序元素&#xff08;类、方法、成员变量等&#xff09;进行关联元数据是指数据的…

游戏工厂:AICG/ChatGPT与流程式游戏开发(码客 卢益贵)

关键词&#xff1a;AI&#xff08;AICG、ChatGPT、文心一言&#xff09;、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言 开发周期长、人工成本高、成功率低等是游戏公司融资困难的罪因。所以有的公司凭一个爆款游戏一骑绝尘…

【MySQL】MySQL索引优化——从原理分析到实践对比

目录 使用TRACE分析MySQL优化 开启TRACE TRACE 结果集 ORDER BY & GROUP BY 优化 优化方式 分页优化 不同场景的优化方式 JOIN关联优化 算法介绍 优化方式 COUNT优化 优化方式 使用TRACE分析MySQL优化 某些情况下&#xff0c;MySQL是否走索引是不确定的[,,_,,…

给word文档中的公式标号

给word文档中的公式标号 首先编写一个公式 cosθa2b2−c22abcos\theta\frac{a^2b^2-c^2}{2ab} cosθ2aba2b2−c2​ 在公式的最后&#xff08;不要超出公式块&#xff09;输入#()并按回车&#xff1a; 即可在生成的框中输入公式序号&#xff1a;

Sobel 算子

1、简介 SobelSobelSobel 本质是基于图像空间域卷积&#xff0c;卷积的作用除了实现图像模糊或者去噪&#xff0c;还可以寻找一张图像上所有梯度信息&#xff0c;这些梯度信息是图像的最原始特征数据&#xff0c;进一步处理之后就可以生成一些比较高级的特征用来表示一张图像实…

快速搭建第一个SpringCloud程序

目录 1、Spring Boot项目脚手架快速搭建 1.1 生成工程基本配置 1.2 生成工程。 1.3 导入开发工具&#xff08;此处为Idea&#xff09; 1.4 运行代码 1.5 验证是否能访问 2、Spring Cloud环境搭建 2.1 版本匹配问题 2.2 Spring Cloud环境测试 3、引入Eureka Server 3…

《GPT-4技术报告》【中文版、英文版下载】

大预言模型时代已经到来&#xff0c;但是真正的智能之路还很长。 一、以下是连接&#xff0c;大家请自取。 英文原版&#xff1a;https://arxiv.org/pdf/2303.08774.pdfhttps://arxiv.org/pdf/2303.08774.pdf 中文翻译版本&#xff1a; 人工通用智能的星星之火:GPT-4的早期实…

【Linux】vi编辑器——命令模式

目录 行复制&#xff08; "yy") 示例&#xff1a; 结果&#xff1a; 粘贴 多行复制&#xff08;"nyy") 示例&#xff1a; 结果&#xff1a; 行间跳转 1G或gg-------------------跳转到文本内容的第一行 示例&#xff1a; 结果: G-----------…

刷题日记①

day01 1. %m.ns 打印输出 以下程序的运行结果是&#xff08;&#xff09;_表示空格 #include <stdio.h> int main(void) {printf("%s , %5.3s\n", "computer", "computer");return 0; }A computer , puter B computer , __com C compute…

磁共振成像(MRI)连接组学的应用

前言 如何将磁共振成像(MRI)连接组学应用于研究典型的大脑结构和功能&#xff0c;并在临床环境中用于诊断、预后或治疗&#xff1f;本文将讨论MRI连接组学在评估功能和结构连接方面的可能应用。简而言之&#xff0c;功能连接是一种测量功能磁共振(fMRI)衍生的血氧水平依赖(BOL…

好兄弟离职了,一周面试了20多场,我直呼内行

好兄弟离职之后&#xff0c;一周面试了20多场&#xff0c;最后进了阿里&#xff0c;分享一些面试经历&#xff0c;希望能对大家有帮助&#xff01; 我的面试感受 先说一个字 是真的 “ 累 ” 安排的太满的后果可能就是经常一天只吃一顿饭&#xff0c;一直奔波在路上 不扯这个…

MybatisPlus <= 3.5.3.1 TenantPlugin 组件 存在 sql 注入漏洞(CVE-2023-25330)

漏洞描述 MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件&#xff0c;可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。 MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在构造 SQL 表达式时默认情况下未对…

关键词数据分析-搜索词和关键词分析工具

要搜索热门关键词获取&#xff0c;可以采用以下几种方法&#xff1a; 使用百度指数&#xff1a;百度指数是一个实用的工具&#xff0c;可用于查看关键词的热度趋势、搜索量等数据。在百度指数中&#xff0c;您可以输入您要搜索的关键词&#xff0c;并查看近期的相关数据。这可以…

ServletAPI详解(四)-HttpServletResponse

我们来看第三个方法,HttpServletResponse 在servlet运行原理中提到,servlet代码中的doXXX方法的目的就是根据请求计算响应,然后将响应数据设置到HttpServletResponse对象中,然后 Tomcat 就会把这个 HttpServletResponse 对象按照 HTTP 协议的格式, 转成一个字符串, 并通过 Soc…