以下是部署Spring Boot和Vue前后端分离项目的基本步骤,并使用Nginx进行负载均衡:
- 准备Linux/openEuler环境。
- 安装Java环境。
- 安装Maven或Gradle。
- 构建Spring Boot项目。
- 安装Nginx。
- 配置Nginx作为负载均衡器。
- 部署Vue前端项目。
- 配置DNS或修改本地hosts文件指向Nginx服务器。
以下是相关的示例配置:
Nginx配置示例 (/etc/nginx/nginx.conf
或 /etc/nginx/conf.d/default.conf
):
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
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;
}
location /api/ {
proxy_pass http://backend;
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;
}
location /static/ {
root /path/to/vue/project/dist;
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
}
Spring Boot启动脚本 (start-spring-boot.sh
):
#!/bin/bash
java -jar /path/to/your/spring-boot-app.jar --spring.profiles.active=prod
确保给脚本执行权限:
chmod +x start-spring-boot.sh
Vue项目构建和部署:
# 在Vue项目目录中
npm run build
# 将构建好的dist目录内容复制到Nginx的静态文件目录
cp -r dist/* /path/to/nginx/html
确保Nginx配置中指定的路径与实际Vue项目构建输出路径一致。
系统服务管理 (systemd
服务文件):
创建一个名为 spring-boot-app.service
的文件:
[Unit]
Description=Spring Boot Application
After=network.target
[Service]
Type=simple
User=your-user
ExecStart=/path/to/start-spring-boot.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动Spring Boot应用程序:
sudo systemctl start spring-boot-app
sudo systemctl enable spring-boot-app
确保在实际部署时替换路径和配置为你的实际环境设置