Tomcat集群在Ubuntu上如何搭建
导读:在Ubuntu上搭建Tomcat集群的步骤 1. 环境准备 安装Java环境:Tomcat依赖JDK运行,需在所有集群节点安装对应版本的JDK(如OpenJDK 11)。使用命令:sudo apt update && su...
在Ubuntu上搭建Tomcat集群的步骤
1. 环境准备
- 安装Java环境:Tomcat依赖JDK运行,需在所有集群节点安装对应版本的JDK(如OpenJDK 11)。使用命令:
验证安装:sudo apt update & & sudo apt install openjdk-11-jdk -y
java -version
,确保输出显示正确版本。 - 下载并解压Tomcat:从Tomcat官网下载所需版本(如Tomcat 9/10),解压到指定目录(如
/opt/tomcat
):
为避免端口冲突,后续需修改每个实例的wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.90/bin/apache-tomcat-9.0.90.tar.gz sudo tar -xzf apache-tomcat-9.0.90.tar.gz -C /opt/ sudo mv /opt/apache-tomcat-9.0.90 /opt/tomcat
server.xml
中的端口(如8080
、8009
)。
2. 配置Tomcat集群实例
- 修改
server.xml
:在每个Tomcat实例的conf/server.xml
中,取消< Engine>
标签内的< Cluster>
配置注释或手动添加,核心配置如下:
注意:多实例部署时,需修改< Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> < !-- jvmRoute需唯一标识实例 --> < Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> < Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> < Channel className="org.apache.catalina.tribes.group.GroupChannel"> < Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" < !-- 组播地址(同一集群内需一致) --> port="45564" < !-- 组播端口(同一集群内需一致) --> frequency="500" dropTime="3000"/> < Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="192.168.1.101" < !-- 本地节点IP(多网卡需指定物理接口) --> port="5000" < !-- 接收端口(不同实例需不同) --> selectorTimeout="100" maxThreads="6"/> < Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> < Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> < /Sender> < Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> < Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> < /Channel> < Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/> < !-- 排除静态资源 --> < Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> < ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> < /Cluster> < /Engine>
address
(本地IP)、port
(接收端口)、jvmRoute
(如tomcat1
、tomcat2
)以避免冲突。 - 启用应用分发:在需复制的应用的
WEB-INF/web.xml
中添加< distributable/>
标签,告知Tomcat该应用支持集群部署。
3. 配置负载均衡(以Nginx为例)
- 安装Nginx:
sudo apt update & & sudo apt install nginx -y
- 配置负载均衡:编辑Nginx配置文件(如
/etc/nginx/sites-available/tomcat-cluster
),添加以下内容:
启用配置:upstream tomcat_cluster { server 192.168.1.101:8080; # Tomcat实例1地址 server 192.168.1.102:8080; # Tomcat实例2地址 # 可添加更多实例 } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://tomcat_cluster; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
sudo ln -s /etc/nginx/sites-available/tomcat-cluster /etc/nginx/sites-enabled/
,重启Nginx:sudo systemctl restart nginx
。
4. 验证集群功能
- 启动所有Tomcat实例:在每个节点执行:
/opt/tomcat/bin/startup.sh
- 测试会话复制:访问
http://yourdomain.com
,通过Tomcat管理页面(如http://yourdomain.com:8080/manager/html
)查看各实例的会话数,或在应用中添加测试页面(如显示session ID
),验证跨节点的会话同步。
5. 可选优化
- 会话持久化:若需更可靠的会话管理,可将会话存储到Redis(需添加Tomcat Redis Session Manager依赖,配置
context.xml
)。 - 监控与调优:使用Prometheus+Grafana监控集群状态,调整Tomcat线程池(
server.xml
中的< Connector>
配置)、内存分配(catalina.sh
中的JAVA_OPTS
)等参数提升性能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Tomcat集群在Ubuntu上如何搭建
本文地址: https://pptw.com/jishu/728599.html