以mod_jk方式整合apache与tomcat(动静分离)
前言:
为什么要整合apache和tomcat
apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处
- 提升对静态文件的处理性能
- 利用 Web 服务器来做负载均衡以及容错
- 更完善地去升级应用程序
jk整合方式介绍(较为普遍的方式)
- jk是通过 AJP 协议与 Tomcat 服务器进行通讯
- Tomcat 默认的 AJP Connector 的端口是 8009(在tomcat的server.xml文件中默认被注释掉)
- JK 本身提供了一个监控以及管理的页面 jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到tomcat 的连接进行设置
目录
一.准备apache、tomcat、jk环境
1.apache和tomcat配置专栏其它文章有介绍,不过多阐述
2.编译安装jk环境
二.配置jk模块以实现整合
1.以我的安装路径为例首先将/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/mod_jk.so这个文件拷贝到/etc/httpd/modules
2.配置mod_jk.conf文件,我同意放在/etc/httpd/conf下的
3.配置workers.properties,上面定义的在那个位置就创建在哪个位置
4.更改/etc/httpd/conf/httpd.conf
三.更改tomcat的server.xml配置
1.按照自己的tomcat安装位置查找该文件
2.在文件中找到AJP的这个位置,将Connector原有注释取消掉并进行配置
注意:
四.创建测试界面(谨慎使用中文)
1.apache测试文件,这里以默认的html目录为例
2.tomcat测试文件,放在你tomcat安装目录中的webapps/ROOT目录下
五.测试
一.准备apache、tomcat、jk环境
1.apache和tomcat配置专栏其它文章有介绍,不过多阐述
[root@localhost native]# yum install -y httpd httpd-devel.x86_64 gcc gcc-c++ make
2.编译安装jk环境
可以到镜像网站下载包

[root@localhost jk]# tar -zvxf tomcat-connectors-1.2.48-src.tar.gz -C /usr/local/src/
[root@localhost native]# pwd
/usr/local/src/tomcat-connectors-1.2.48-src/native
[root@localhost native]# whereis apxs #查看apxs位置
apxs: /usr/bin/apxs /usr/share/man/man1/apxs.1.gz
[root@localhost native]# ./configure --with-apxs=/usr/bin/apxs
#使用上面查到的apxs进行编译安装
[root@localhost native]# make
[root@localhost native]# make install
二.配置jk模块以实现整合
1.以我的安装路径为例首先将/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0/mod_jk.so这个文件拷贝到/etc/httpd/modules
[root@localhost apache-2.0]# pwd
/usr/local/src/tomcat-connectors-1.2.48-src/native/apache-2.0
[root@localhost apache-2.0]# cp mod_jk.so /etc/httpd/modules/
2.配置mod_jk.conf文件,我同意放在/etc/httpd/conf下的
一定注意文件的路径,不确定就写绝对路径
[root@localhost conf]# pwd
/etc/httpd/conf
[root@localhost conf]# vim mod_jk.conf
LoadModule jk_module modules/mod_jk.so #导入刚才移过来的mod_jk.so模板
JkWorkersFile /etc/httpd/conf/workers.properties #稍后需要创建的tomcat的工作文件
JkLogFile /var/log/httpd/mod_jk.log #自定义,重启后会自动创建
JkLogLevel info #日志等级
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
JkRequestLogFormat "%w %V %T" #一些日志格式
JkMount /*.jsp worker1 #重要参数,将以".jsp"结尾的文件交给worker1处理,worker1也是稍后workers.properties工作文件中的主要参与者#这里可以定义多个任务分配,按实际需求定义
workers.properties
JkMount /* worker1
JkMount /*.jsp worker1
JkMount /servlet/* worker1
JkMount /*.do worker1
JkMount /*.action worker1
JkMount /*.class worker1
JkMount /*.jar worker1
JkMount /jkstatus status # 状态页
3.配置workers.properties,上面定义的在那个位置就创建在哪个位置
[root@localhost conf]# vim workers.properties
workers.tomcat_home=/usr/local/tomcat/ #定义tomcat工作目录
workers.java_home=/usr/java//usr/java/jdk1.8.0_371 #定义jdk工作目录
worker.list=worker1 #处理请求的“工作者”
worker.worker1.type=ajp13 #固定模板
worker.worker1.host=192.168.2.190 #该“工作者”主机地址
worker.worker1.port=8009 #该“工作者”服务端口#如果在mod_jk.so中定义了状态页,需要
#worker.list = status
#worker.status.type=status
4.更改/etc/httpd/conf/httpd.conf
添加上这行

三.更改tomcat的server.xml配置
1.按照自己的tomcat安装位置查找该文件
[root@localhost conf]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/conf
[root@localhost conf]# vim server.xml
2.在文件中找到AJP的这个位置,将Connector原有注释取消掉并进行配置
注意:
如果在使用jk整合apache和tomcat后续测试时出现“503 Service Unavailable”,需要将address处修改为虚拟机IP地址或“0.0.0.0”,新增secretRequired="false"这行,并重启测试

四.创建测试界面(谨慎使用中文)
1.apache测试文件,这里以默认的html目录为例
[root@localhost html]# pwd
/var/www/html
[root@localhost html]# vim index.html
apache
2.tomcat测试文件,放在你tomcat安装目录中的webapps/ROOT目录下
[root@localhost ROOT]# pwd
/usr/local/tomcat/apache-tomcat-8.5.70/webapps/ROOT
[root@localhost ROOT]# vim test.jsp
tomcat
五.测试

相关文章:
以mod_jk方式整合apache与tomcat(动静分离)
前言: 为什么要整合apache和tomcat apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处 提升对静态文件的处理性能 利用 Web 服务器来做负载均衡以及容错 更完善地去升级应用程序 jk整合方式介绍&#…...
springboot动态数据源切换
1)、就是将多个数据源全部注入到bean中,根据需要实现多数据源之间的切换。 2)、使用baomidou的DS注解。见文章DS注解实现数据源动态切换 com.baomidou dynamic-datasource-spring-boot-starter 3.5.1 ##设置默认的数据源或者数据源组,默认值…...
代码随想录训练营day14
101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 func isSymmetric(root *TreeNode) bool {if root nil{ return true}return judge(root.Left,root.Right) }func judge(lf *TreeNode , ri *TreeNode)bool{if lf nil && ri nil{ retu…...
功能测试进阶自动化测试如何摸清学习方向,少走弯路呢?
目录 抛开疑问,只做学术探讨 小白在想什么? 盖楼之前先打好地基,首先需要学习一门语言 语言入门后,正式踏上开始自动化成神之路,入门篇Selenium 玩腻了Selenium 开始接触自动化框架unittest/testNG 不满足于单元…...
检测前端是否可以ping通后端返回的ip地址
检测前端是否可以ping通后端返回的ip地址 前端检测是否可ping通ip地址(PC端)前端检测是否可ping通ip地址(uniapp小程序端) 前端检测是否可ping通ip地址(PC端) // 前端检测是否可ping通ip地址 ping…...
SMART司马他法则(目标管理)
S代表具体(Specific),指绩效考核要切中特定的工作指标,不能笼统; M代表可度量(Measurable),指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的; A代表可实现(Attainable)&…...
【LeetCode】删除并获得点数
删除并获得点数 题目描述算法分析编程代码空间优化 链接: 删除并获得点数 题目描述 算法分析 编程代码 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;int arr[N] {0};for(const auto& n : nums){arr[n]n;}vector<in…...
SciencePub学术 | 传感器类重点SCIE征稿中
SciencePub学术 刊源推荐: 传感器类重点SCIE征稿中!信息如下,录满为止: 一、期刊概况: 传感器类重点SCIE 【期刊简介】IF:2.0-2.5,JCR3区,中科院4区; 【版面类型】正刊࿱…...
移动端开发基础总结
移动端学习总结 (适合于复习) 移动端基础 技术选型: 单独制作移动端页面(主流) 流式布局(百分比布局)flex弹性布局(强烈推荐)lessrem媒体查询布局混合布局 响应式页面兼容移动端(…...
小X学游泳(深搜)
第一题 题目描述 小X想要学游泳。 这天,小X来到了游泳池,发现游泳池可以用N行M列的格子来表示,每个格子的面积都是1,且格子内水深相同。 由于小X刚刚入门,他只能在水深相同的地方游泳。为此,他把整个游泳池…...
分布式协议与算法——拜占庭将军问题
拜占庭将军问题 背景:以战国时期为背景 战国时期,齐、楚、燕、韩、赵、魏、秦七雄并立,后来秦国的势力不断强大起来,成了东方六国的共同威胁。于是,这六个国家决定联合,全力抗秦,免得被秦国各个…...
MySQL数据库管理的基本原则和技巧
MySQL数据库是一种常用的关系型数据库管理系统,用于存储和管理大量的数据。在进行MySQL数据库管理时,有一些基本原则和技巧可以帮助我们更有效地管理数据库。 数据库设计原则: 合理规划数据表结构: 根据数据之间的关系和业务需求…...
SQL-每日一题【1193. 每月交易 I】
题目 Table: Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数…...
探析青少年口才训练在个人发展中的重要性与影响
论文题目:探析青少年口才训练在个人发展中的重要性与影响 摘要: 本论文旨在探讨青少年口才训练对个人发展的重要性和影响。通过对相关文献的综述和实证研究的分析,论文将阐述口才训练对青少年自信心、表达能力和思维能力的提升,以…...
HTML 元素的 class 和 id 属性有何区别?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 唯一性⭐ 选择器权重⭐ JS操作⭐ CSS和JavaScript引用⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏…...
关于GKPhoto点击放大没有图片只有缺省图
GKPhoto,点进去看看,人家可传递的不止有url,还有UiImage NSString *photo self.detailModel.teacherModel.teacher_picture; NSString *placeHoldStr "ing_morentouxiang"; NSMutableArray *photos [NSMutableArray new]; GKPhoto *phot…...
建议收藏!总结了 42 种前端常用布局方案
对 CSS 布局掌握程度决定你在Web开发中的开发页面速度。随着Web技术的不断革新,实现各种布局的方式已经多得数不胜数了。 本篇文章总结了四十二种CSS的常见布局,这四十二种布局可以细分为如下几类: 水平居中垂直居中水平垂直居中两列布局三…...
spring AOP两种动态代理
本文开始 1.什么是动态代理? 动态代理:本来是通过直接访问目标对象的,但是找个代理对象替你进行访问目标对象,这就是动态代理过程; 例如:买饭作为目标对象,自己不想亲自跑腿,就点个…...
英语——副词
副词是指在句子中表示行为或状态特征的词,常用来修饰动词、形容词、其他副词或者句子等,表示时间、地点、方式和程度等,在句子中作状语。 第一节 副词的基本形式 一、副词的构成 1.许多副词都是由形容词变化而来。 (1)大部分副词由相应形容词直接加-ly构成。quick→q…...
Vue 本地应用 记事本 v-on v-model v-for使用
新增功能 vue当中如何生成列表结构?使用的指令是v-for,同时要有一个可以生成列表的数据,常用的是数组。记事本里面的内容并不复杂,所以这里使用字符串数组就行了。 获取用户输入的内容使用绑定v-model,双向数据绑定&a…...
seo网站推广与社交媒体营销的结合_seo网站推广的投资回报率如何计算
SEO网站推广与社交媒体营销的结合:如何计算SEO网站推广的投资回报率 在当今的数字营销时代,SEO网站推广和社交媒体营销是两个不可或缺的组成部分。它们的结合可以帮助企业更好地吸引潜在客户,提高品牌知名度,并最终推动销售增长。…...
GitHub 热榜项目 - 日榜(2026-04-03)
GitHub 热榜项目 - 日榜(2026-04-03) 生成于:2026-04-03 统计摘要 共发现热门项目: 7 个 榜单类型:日榜 Token赞助:siliconflow 本期热点趋势总结 本期 GitHub 热榜呈现出 AI Agent 与基础模型深度集成的高度工程化趋势。技…...
从零设计一个AXI Master:手把手教你为Xilinx MIG DDR4控制器编写自定义测试逻辑
从零设计AXI Master:构建Xilinx DDR4控制器的定制化测试引擎 在FPGA开发领域,高效访问DDR4内存是提升系统性能的关键。本文将带您深入AXI总线协议的核心,通过Verilog/SystemVerilog实现一个功能完备的AXI Master模块,突破现成IP核…...
低噪放(LNA)关键参数在5G通信电路设计中的优化策略
1. 5G时代LNA设计的核心挑战 当你用手机刷短视频时,可能不会想到信号要经历一场"马拉松"——从基站出发,穿过建筑、树木、甚至雨雾,最终到达你掌心大小的设备。而这场马拉松的第一棒选手,就是藏在手机射频前端的低噪声…...
VLC安卓版隐藏功能大揭秘:这些options参数让你的播放体验飞起
VLC安卓版隐藏功能大揭秘:这些options参数让你的播放体验飞起 作为安卓平台上最强大的开源播放器,VLC的潜力远不止表面看到的那些基础功能。许多用户不知道的是,通过调整options参数,可以彻底改变播放体验——解决卡顿、优化画质、…...
从信号处理到量化交易:我是如何用Python+miniQMT搭建实时行情数据管道的(附避坑经验)
从信号处理到量化交易:PythonminiQMT构建高可靠行情管道的工程实践 第一次尝试用Python连接miniQMT获取实时行情时,我的回调函数在开盘瞬间就被数据洪流冲垮了——这让我意识到金融数据流的处理与信号处理领域的实时系统设计竟有惊人的相似。本文将分享如…...
yolov8 mobilev3轻量级 注意力机制感兴趣的话点“我想要”和我私聊吧~
yolov8 mobilev3轻量级 注意力机制 感兴趣的话点“我想要”和我私聊吧~...
全文降AI和分段降AI效果差这么多?原因解释清楚
全文降AI和分段降AI效果差这么多?原因解释清楚 先说数据:同一篇论文(初始48%),分段处理后AI率降到31%,全文处理后AI率降到9%。 差距22个百分点,不是小数目。 为什么会差这么多?这…...
【愚公系列】《剪映+DeepSeek+即梦:短视频制作》047-转场:短视频一气呵成的秘密(转场类型)
💎【行业认证权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋&am…...
全球人形机器人革命浪潮涌动,特斯拉/微美全息聚焦AI具身量产应用新突破!
近日,特斯拉(TSLA.US)马斯克宣布开启人类历史上规模最大的芯片制造项目——TERAFAB,目标实现每年超过1太瓦的算力产出。该设施将整合芯片设计、光刻、制造等全流程,其生产的部分芯片未来将直接用于驱动特斯拉电动车以及人形机器人。人形机器人…...
