Linux 服务器部署 Tomcat 集群实现高可用 Web 部署

千敏姑娘_6461

千敏姑娘_6461

2026-06-30

657人浏览

原创

linux部署tomcat集群实现高可用需三要素协同:多节点、会话复制与前端负载均衡;须统一jdk/tomcat版本、时间同步、端口隔离及jvmroute标识;启用simpletcpcluster并配置;nginx作负载均衡,结合健康检查与keepalived提升可靠性。

linux 服务器部署 tomcat 集群实现高可用 web 部署

Linux 上部署 Tomcat 集群实现高可用,核心在于**多节点 + 会话复制 + 前端负载均衡**三者协同。单靠多个 Tomcat 实例并不构成高可用,必须确保请求可自动分发、会话不丢失、故障时无缝切换。

基础环境统一配置

所有节点需保持高度一致,避免因环境差异引发集群通信失败或会话不同步:

  • 安装相同版本 JDK(推荐 OpenJDK 11 或 17),通过 java -version 和 $JAVA_HOME 确认;
  • 使用同一版本 Tomcat(如 9.0.56 或 10.1.x),解压至统一路径(如 /opt/tomcat);
  • 所有节点执行 ntpdate pool.ntp.org 或启用 chronyd 同步时间,偏差超过 5 秒可能影响集群心跳判定;
  • 关闭防火墙或放行关键端口:应用端口(如 8080/8081)、AJP 端口(如 8009/8010)、集群通信端口(默认 receiver port=4000,组播 port=45564)。

Tomcat 多实例端口与集群标识隔离

在同一台物理机或虚拟机部署多个 Tomcat 实例时,必须区分各组件端口并设置唯一集群身份:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 修改 conf/server.xml 中的 <server port="8005"></server>(关闭端口),如实例1用 8005,实例2用 8006;
  • 调整 HTTP Connector 端口:<connector port="8080"></connector> → 实例1用 8080,实例2用 8081;
  • 设置 AJP 端口(供 Nginx/Haproxy 反向代理):<connector port="8009" protocol="AJP/1.3"></connector> → 实例1用 8009,实例2用 8010;
  • 在 <engine></engine> 标签中添加唯一 jvmRoute,如 <engine name="Catalina" defaulthost="localhost" jvmroute="tomcat1"></engine>,该值后续需与负载均衡器配置对齐。

启用内置 TCP 集群与会话复制

Tomcat 自带 SimpleTcpCluster,无需额外中间件即可实现 Session 跨节点同步,适用于局域网内稳定环境:

  • 在每个实例的 conf/server.xml 的 <engine></engine> 内插入完整 <cluster></cluster> 块;
  • 组播地址(<membership></membership>)需全集群一致,如 address="228.0.0.4"、port="45564";
  • <receiver></receiver> 的 port="4000" 必须各节点不同(若单机多实例),或设为 auto 让 Tomcat 自动分配;
  • 推荐使用 DeltaManager(默认)处理增量 Session 复制,比 BackupManager 更轻量;
  • 务必在 Web 应用的 WEB-INF/web.xml 中添加 <distributable></distributable> 标签,否则 Session 不参与复制。

前端负载均衡与健康检查

Nginx 是最常用且轻量的选择,负责流量分发、节点探测和故障摘除:

  • 配置 upstream 指向各 Tomcat AJP 或 HTTP 地址,并绑定对应 jvmRoute 值,例如:
    upstream backend { server 192.168.1.10:8009 weight=1 max_fails=3 fail_timeout=30s; server 192.168.1.11:8009 weight=1 max_fails=3 fail_timeout=30s; }
  • 启用 ip_hash 可保障同一客户端始终路由到同一节点(适合未开启会话复制的场景),但开启会话复制后建议用 least_conn 或默认轮询;
  • 添加健康检查路径(如 /health),并在 Tomcat 应用中返回 HTTP 200,Nginx 通过 health_check 指令自动剔除不可用节点;
  • 若需更高可靠性,可在 Nginx 层再叠加 Keepalived 实现双机热备,避免单点故障。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2732

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2476

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4572

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Tomcat核心原理解析
Tomcat核心原理解析

共57课时 | 8.8万人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习