# 安装OpenJDK 8
sudo yum install -y java-1.8.0-openjdk-devel
# 验证安装
java -version
# 下载Tomcat8
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz
# 解压安装
tar -zxvf apache-tomcat-8.5.51.tar.gz
mv apache-tomcat-8.5.51 /usr/local/tomcat1
# 复制第二个Tomcat实例(用于负载均衡演示)
cp -r /usr/local/tomcat1 /usr/local/tomcat2
# 修改第二个Tomcat的端口以避免冲突
sed -i 's/8005/8006/g' /usr/local/tomcat2/conf/server.xml
sed -i 's/8080/8081/g' /usr/local/tomcat2/conf/server.xml
sed -i 's/8009/8010/g' /usr/local/tomcat2/conf/server.xml
# 启动第一个Tomcat
/usr/local/tomcat1/bin/startup.sh
# 启动第二个Tomcat
/usr/local/tomcat2/bin/startup.sh
# 验证Tomcat是否运行
curl http://localhost:8080
curl http://localhost:8081
# 添加Nginx官方仓库
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装Nginx
sudo yum install -y nginx
# 启动Nginx并设置开机启动
sudo systemctl start nginx
sudo systemctl enable nginx
编辑Nginx配置文件:
sudo vi /etc/nginx/conf.d/load-balancer.conf
添加以下内容:
upstream tomcat_servers {
# 配置负载均衡策略
# least_conn; # 最少连接数
# ip_hash; # IP哈希
server 127.0.0.1:8080 weight=1; # 第一个Tomcat实例
server 127.0.0.1:8081 weight=1; # 第二个Tomcat实例
# 可以添加更多服务器
}
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或IP
location / {
proxy_pass http://tomcat_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 测试Nginx配置
sudo nginx -t
# 重启Nginx使配置生效
sudo systemctl restart nginx
# 多次访问测试负载均衡效果
curl http://localhost
你应该能看到请求被轮流分配到两个Tomcat实例上。
在upstream中添加健康检查:
upstream tomcat_servers {
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
}
如果需要会话保持(session sticky),可以使用ip_hash:
upstream tomcat_servers {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
# 开放80端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
Nginx无法启动:
nginx -t
netstat -tulnp | grep :80
Tomcat无法访问:
ps -ef | grep tomcat
负载不均衡:
性能问题:
通过以上步骤,你应该已经成功搭建了一个基于CentOS7、Nginx和Tomcat8的负载均衡服务器。