Tomcat Connectors 1.2.32 源码编译安装教程(含 mod_jk 配置步骤)

简介: 本文介绍如何在Ubuntu/Debian系统上编译安装Tomcat的mod_jk模块,实现Apache与Tomcat集成。涵盖环境准备、源码解压、环境变量设置、配置编译、模块安装及Apache与Tomcat联动配置全过程,并提供测试方法,确保通过Apache正确转发请求至Tomcat。

1. 准备环境

先装好这些东西:

  • Apache HTTP Server(就是 Apache)
  • Tomcat
  • 编译器:gccmake
  • Java 开发环境(JDK)

在 Ubuntu/Debian 上你可以这么装:

sudo apt update
sudo apt install build-essential apache2 tomcat9 openjdk-11-jdk


2. 下载并解压源码

安装包下载:https://pan.quark.cn/s/220ddde3d4ce**,假设你已经下载了 tomcat-connectors-1.2.32-src.tar.gz

tar -xzf tomcat-connectors-1.2.32-src.tar.gz
cd tomcat-connectors-1.2.32-src/native


3. 设置环境变量

要让编译知道 Apache 和 Tomcat 在哪,得设置几个变量:

export APACHE_HOME=/usr/local/apache2   # 或者你 Apache 实际安装路径
export TOMCAT_HOME=/usr/share/tomcat9   # 或者你 Tomcat 的路径
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

注意:路径要根据你自己系统实际情况改。


4. 配置和编译

进入 native 目录后执行:

./configure --with-apxs=/usr/bin/apxs2
make

  • --with-apxs是指定 apxs 工具的路径,一般在 /usr/bin/apxs2/usr/bin/apxs
  • 如果提示找不到 apxs,可以装:sudo apt install apache2-dev

5. 安装模块

编译完会生成一个 .so文件(比如 mod_jk.so),把它复制到 Apache 的模块目录:

sudo cp apache-2.0/mod_jk.so /usr/lib/apache2/modules/


6. 配置 Apache 加载 mod_jk

编辑 Apache 配置文件(比如 /etc/apache2/apache2.conf或新建一个 /etc/apache2/mods-available/jk.load):

LoadModule jk_module modules/mod_jk.so

然后启用模块:

sudo a2enmod jk


7. 配置 workers(告诉 Apache 怎么连 Tomcat)

创建文件 /etc/apache2/workers.properties,内容类似:

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

再创建一个配置文件 /etc/apache2/jk.conf(或加到 apache2.conf 里):

JkWorkersFile /etc/apache2/workers.properties
JkMount /* worker1


8. 重启 Apache 和 Tomcat

sudo systemctl restart apache2
sudo systemctl restart tomcat9


9. 测试

放个 JSP 页面到 Tomcat 的 webapps 目录下,比如 test.jsp

<%= new java.util.Date() %>

然后通过 Apache 访问:http://你的服务器/test.jsp,如果能显示时间,说明成功了。

相关文章
|
1月前
|
Web App开发 传感器 物联网
WebGL 数字孪生项目开发
WebGL是实现网页端数字孪生的核心技术,无需插件即可调用GPU进行高性能3D渲染。项目开发多采用Three.js、Cesium等引擎,结合glTF模型、PBR材质与LOD优化,通过实例化渲染、纹理压缩与遮挡剔除保障性能。验收需关注帧率、加载速度、显存占用及数据延迟,确保跨端稳定运行。#webgl开发 #数字孪生
|
1月前
|
存储 安全 网络安全
数据加密有什么作用?一文带你理解数据加密
数据如血液,流动中安全至关重要。本文深入浅出解析数据加密:从日常场景到核心技术,详解其保密、防篡改、身份验证三重作用,剖析对称与非对称加密原理,并探讨企业实践中的数据分类、加密时机与密钥管理,揭示加密不仅是技术,更是数字信任的基石。
|
4月前
|
数据采集 存储 监控
ETL 工程师必看!3个数据处理阶段及应用场景
本文详解ETL全流程:从需求对齐、数据探查,到提取转换加载,再到质量监控与优化,并结合制造、零售场景展示其应用价值,揭示如何构建高效、可靠的数据生命线。
|
缓存 JavaScript 前端开发
高效打造跨平台桌面应用:Electron加载服务器端JS
【9月更文挑战第17天】Electron 是一个基于 Chromium 和 Node.js 的开源框架,允许使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用。加载服务器端 JS 可增强应用灵活性,实现代码复用、动态更新及实时通信。通过 HTTP 请求、WebSocket 或文件系统可实现加载,但需注意安全性、性能和兼容性问题。开发者应根据需求选择合适方法并谨慎实施。
651 3
|
API 算法框架/工具
【threejs教程】三维物体与三维向量
【8月更文挑战第7天】threejs教程:三维物体与三维向量
376 3
【threejs教程】三维物体与三维向量
|
JavaScript
Vue与原生JS中方法调用
Vue与原生JS中方法调用
287 0
|
网络协议 安全
工控CTF_纵横网络靶场_Modbus协议
工控CTF_纵横网络靶场_Modbus协议
工控CTF_纵横网络靶场_Modbus协议
|
JavaScript
element-ui 的表格里面使用 el-popover 实现编辑弹层功能
element-ui 的表格里面使用 el-popover 实现编辑弹层功能
1326 0
element-ui 的表格里面使用 el-popover 实现编辑弹层功能