Ubuntu云服务器全栈部署实战:SpringBoot+Vue3+MySQL整合指南
2025.09.09 10:31浏览量:15简介:本文详细讲解在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 /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo 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 -ysudo 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 -DskipTestsscp target/yourapp.jar user@server_ip:/home/ubuntu
3.2 配置系统服务
创建/etc/systemd/system/springboot.service:
[Unit]Description=SpringBoot ApplicationAfter=syslog.target[Service]User=ubuntuExecStart=/usr/bin/java -jar /home/ubuntu/yourapp.jarSuccessExitStatus=143Restart=always[Install]WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reloadsudo systemctl enable springbootsudo systemctl start springboot
四、Vue3前端部署
4.1 项目构建
在本地执行生产环境构建:
npm run build
4.2 Nginx配置
安装Nginx并配置反向代理:
sudo apt install nginx -ysudo 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 -ysudo 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: Deployon:push:branches: [ main ]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v3- name: Build Backendrun: mvn package -DskipTests- name: Build Frontendrun: |cd frontendnpm installnpm run build- name: Deploy to Serveruses: appleboy/scp-action@masterwith: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数据库的整合方案。通过合理的配置和优化,可以构建出高性能、易维护的全栈应用系统。建议开发者根据实际业务需求调整配置参数,并建立完善的监控体系确保服务稳定性。

发表评论
登录后可评论,请前往 登录 或 注册