Ubuntu云服务器全栈部署实战:SpringBoot+Vue3+MySQL整合指南
2025.09.09 10:31浏览量:1简介:本文详细讲解在Ubuntu云服务器上部署SpringBoot后端、Vue3前端与MySQL数据库的全流程,涵盖环境配置、项目打包、Nginx反向代理、HTTPS加密等核心环节,并提供自动化部署脚本与性能优化建议。
Ubuntu云服务器全栈部署实战:SpringBoot+Vue3+MySQL整合指南
一、环境准备与云服务器配置
1.1 云服务器选型建议
推荐选择2核4G及以上配置的Ubuntu 22.04 LTS实例,确保满足全栈应用运行需求。关键配置项包括:
- 开放端口:22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)
- 配置SSH密钥登录(比密码更安全)
- 设置swap分区(内存不足时的应急方案)
# 示例:创建4GB swap文件
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
1.2 基础环境安装
通过APT包管理器安装必要组件:
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装JDK17(SpringBoot需Java11+)
sudo apt install openjdk-17-jdk -y
# 安装Node.js(Vue构建需要)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# 验证安装
java -version && node -v
二、MySQL数据库部署与优化
2.1 安全安装MySQL
sudo apt install mysql-server -y
sudo mysql_secure_installation
2.2 关键配置调整
修改/etc/mysql/mysql.conf.d/mysqld.cnf
:
[mysqld]
bind-address = 0.0.0.0 # 允许远程连接
max_connections = 200 # 根据服务器配置调整
innodb_buffer_pool_size = 1G # 建议分配总内存的50-70%
2.3 创建应用数据库
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
三、SpringBoot后端部署
3.1 项目打包与传输
使用Maven打包并上传jar文件:
mvn clean package -DskipTests
scp target/yourapp.jar user@server_ip:/home/ubuntu
3.2 配置系统服务
创建/etc/systemd/system/springboot.service
:
[Unit]
Description=SpringBoot Application
After=syslog.target
[Service]
User=ubuntu
ExecStart=/usr/bin/java -jar /home/ubuntu/yourapp.jar
SuccessExitStatus=143
Restart=always
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl enable springboot
sudo systemctl start springboot
四、Vue3前端部署
4.1 项目构建
在本地执行生产环境构建:
npm run build
4.2 Nginx配置
安装Nginx并配置反向代理:
sudo apt install nginx -y
sudo rm /etc/nginx/sites-enabled/default
创建/etc/nginx/sites-available/yourapp
:
server {
listen 80;
server_name yourdomain.com;
location / {
root /var/www/yourapp/dist;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
sudo systemctl restart nginx
五、安全加固与HTTPS配置
5.1 使用Let’s Encrypt获取SSL证书
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
5.2 自动续期配置
sudo crontab -e
# 添加以下内容
0 12 * * * /usr/bin/certbot renew --quiet
六、自动化部署方案
6.1 使用GitHub Actions
示例.github/workflows/deploy.yml
:
name: Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Backend
run: mvn package -DskipTests
- name: Build Frontend
run: |
cd frontend
npm install
npm run build
- name: Deploy to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_KEY }}
source: "target/*.jar,frontend/dist"
target: "/home/ubuntu"
七、性能监控与优化
7.1 基础监控工具
# 安装监控工具
sudo apt install htop sysstat -y
# 查看实时资源使用
htop
7.2 SpringBoot性能调优
- 调整JVM参数:
-Xms512m -Xmx1024m -XX:+UseG1GC
- 启用Actuator监控端点
- 使用连接池(如HikariCP)
7.3 Vue前端优化
- 配置gzip压缩
- 启用HTTP/2
- 使用CDN加速静态资源
八、故障排查指南
8.1 常用诊断命令
# 查看服务日志
journalctl -u springboot --since "1 hour ago"
# 检查端口占用
sudo netstat -tulnp
# 数据库连接测试
mysql -h 127.0.0.1 -u app_user -p app_db
8.2 典型问题解决方案
- 端口冲突:修改
application.properties
中的server.port
- 跨域问题:配置SpringBoot的
@CrossOrigin
或Nginx代理 - 静态资源404:检查Nginx的
root
路径配置
结语
本文详细介绍了在Ubuntu云服务器上部署全栈应用的全流程,从环境准备到自动化部署,涵盖了SpringBoot后端、Vue3前端和MySQL数据库的整合方案。通过合理的配置和优化,可以构建出高性能、易维护的全栈应用系统。建议开发者根据实际业务需求调整配置参数,并建立完善的监控体系确保服务稳定性。
发表评论
登录后可评论,请前往 登录 或 注册