后端集群部署
集群部署教程(参考指南)
⚠️ 本文档仅供参考。生产环境中如需实现高可用的中间件集群(如 MySQL 主从、Redis Sentinel/Cluster 等),请根据实际情况查阅相关文档,或使用云平台提供的集群服务。
一、部署环境要求
- MySQL:8.x
- Redis:6.x
- Nginx:任意稳定版本
- JDK:建议使用 JDK 17 或以上
- 操作系统:建议使用 Linux (如 CentOS 7+、Ubuntu 20+)
二、后端服务部署(多节点)
以下示例以两台服务器部署后端服务为例:
| 机器名称 | IP 地址 | 启动端口 | 说明 |
|---|---|---|---|
| 服务节点1 | 192.168.1.101 | 8998 | 后端实例 |
| 服务节点2 | 192.168.1.102 | 8999 | 后端实例 |
如需在同一台服务器运行多个实例,请确保使用不同端口号。
启动命令示例:
# 服务器 192.168.1.101 启动
nohup java -jar tduck-api.jar --server.port=8998 > /dev/null 2>&1 &
# 服务器 192.168.1.102 启动
nohup java -jar tduck-api.jar --server.port=8999 > /dev/null 2>&1 &
可通过 ps -ef | grep tduck-api 或查看日志文件确认是否成功启动。
三、配置 Nginx 实现负载均衡
1. 修改 Nginx 配置文件
打开并编辑 Nginx 配置文件(如 /etc/nginx/conf.d/tduck.conf):
# 定义后端服务集群
upstream tduck_backend {
server 192.168.1.101:8998;
server 192.168.1.102:8999;
}
server {
listen 80;
server_name localhost;
access_log /data/log/nginx/access.log main;
error_log /data/log/nginx/error.log;
# 静态资源目录
location / {
root /data/web;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# 后端接口转发
location /tduck-api/ {
proxy_pass http://tduck_backend/tduck-api/;
# 跨域支持
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods GET, POST, OPTIONS, PUT, DELETE;
# 连接配置
proxy_http_version 1.1;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
# 真实IP获取
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket 支持
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 上传文件映射(根据项目实际路径修改)
location /file/ {
alias /application/static/upload/;
}
}
2. 检查并重启 Nginx
nginx -t # 检查配置是否正确
nginx -s reload # 重载配置
四、说明与建议
- 默认使用轮询策略进行负载均衡,如需自定义(如权重、最少连接等),请参考 Nginx 官方负载均衡文档。
- 若服务需要通过 HTTPS 提供访问,请配置 SSL 证书并将
listen 80改为listen 443 ssl。 - 日志路径、静态资源目录等可根据部署环境自由调整。
如需进一步完善运维能力,建议结合监控(如 Prometheus + Grafana)、日志收集(如 ELK)、自动化部署等工具进行建设。