在Debian上实现Tomcat负载均衡,常用方案是通过Nginx或Apache HTTP Server作为反向代理,以下是具体步骤:
sudo apt update
sudo apt install nginx
编辑Nginx配置文件(如/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
):
http {
upstream tomcat_cluster {
server 127.0.0.1:8080 weight=1; # Tomcat实例1(需替换为实际IP和端口)
server 127.0.0.1:8081 weight=1; # Tomcat实例2
# 可添加更多实例
least_conn; # 负载均衡策略(可选:轮询、IP哈希等)
}
server {
listen 80;
server_name yourdomain.com; # 替换为实际域名或IP
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 nginx -t # 测试配置语法
sudo systemctl restart nginx
访问http://yourdomain.com
,通过日志或监控工具确认请求被分发到不同Tomcat实例。
sudo apt update
sudo apt install apache2
sudo a2enmod proxy proxy_http # 启用反向代理模块
sudo systemctl restart apache2
编辑Apache配置文件(如/etc/apache2/sites-available/000-default.conf
):
<VirtualHost *:80>
ServerName yourdomain.com
ProxyPass / balancer://tomcat_cluster/
ProxyPassReverse / balancer://tomcat_cluster/
<Proxy balancer://tomcat_cluster>
BalancerMember http://127.0.0.1:8080 route=tomcat1
BalancerMember http://127.0.0.1:8081 route=tomcat2
# 可添加更多实例
</VirtualHost>
</VirtualHost>
确保mod_proxy
和mod_proxy_http
已启用,可通过以下命令检查:
sudo a2enmod proxy proxy_http
sudo systemctl restart apache2
访问http://yourdomain.com
,观察请求是否被分发到多个Tomcat实例。
Tomcat实例准备
conf/server.xml
中配置集群(如<Cluster>
标签),并使用Redis等共享会话存储。负载均衡策略
weight
参数指定实例权重(如server 127.0.0.1:8080 weight=3
)。ip_hash
指令。健康检查
max_fails
和fail_timeout
参数检测实例状态,自动剔除故障节点。mod_lbmethod_byrequests
)实现简单健康检查。安全配置