# 更新软件包列表
sudo apt update
# 安装Nginx
sudo apt install nginx -y
# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
# 安装OpenJDK
sudo apt install default-jdk -y
# 下载Tomcat (以Tomcat 9为例)
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz
# 解压Tomcat
tar -xzf apache-tomcat-9.0.68.tar.gz
# 创建两个Tomcat实例
mv apache-tomcat-9.0.68 tomcat1
cp -r tomcat1 tomcat2
# 修改第二个Tomcat的端口以避免冲突
sed -i 's/8080/8081/g' tomcat2/conf/server.xml
sed -i 's/8005/8006/g' tomcat2/conf/server.xml
sed -i 's/8009/8010/g' tomcat2/conf/server.xml
# 启动两个Tomcat实例
./tomcat1/bin/startup.sh
./tomcat2/bin/startup.sh
sudo nano /etc/nginx/nginx.conf
http
块中添加以下内容:upstream tomcat_servers {
# 默认使用轮询(round-robin)算法
server 127.0.0.1:8080;
server 127.0.0.1:8081;
# 可选: 设置权重
# server 127.0.0.1:8080 weight=3;
# server 127.0.0.1:8081 weight=1;
# 可选: 使用最少连接算法
# least_conn;
# 可选: 设置健康检查
# server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
# server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
}
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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo nginx -t
sudo systemctl restart nginx
# 查看Nginx访问日志
tail -f /var/log/nginx/access.log
# 查看Tomcat访问日志
tail -f tomcat1/logs/localhost_access_log.*
tail -f tomcat2/logs/localhost_access_log.*
如果需要会话保持,可以修改Nginx配置:
upstream tomcat_servers {
ip_hash; # 基于客户端IP的会话保持
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://tomcat_servers;
# 其他proxy设置...
}
}
server {
listen 80;
server_name your_domain.com;
return 301 https://$host$request_uri;
}
sudo nginx -t
检查配置语法tomcat*/logs/catalina.out
通过以上步骤,你已经在Debian系统上成功搭建了Nginx+Tomcat的负载均衡环境。