logo

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分区(内存不足时的应急方案)
  1. # 示例:创建4GB swap文件
  2. sudo fallocate -l 4G /swapfile
  3. sudo chmod 600 /swapfile
  4. sudo mkswap /swapfile
  5. sudo swapon /swapfile

1.2 基础环境安装

通过APT包管理器安装必要组件:

  1. # 更新软件源
  2. sudo apt update && sudo apt upgrade -y
  3. # 安装JDK17(SpringBoot需Java11+)
  4. sudo apt install openjdk-17-jdk -y
  5. # 安装Node.js(Vue构建需要)
  6. curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
  7. sudo apt install -y nodejs
  8. # 验证安装
  9. java -version && node -v

二、MySQL数据库部署与优化

2.1 安全安装MySQL

  1. sudo apt install mysql-server -y
  2. sudo mysql_secure_installation

2.2 关键配置调整

修改/etc/mysql/mysql.conf.d/mysqld.cnf

  1. [mysqld]
  2. bind-address = 0.0.0.0 # 允许远程连接
  3. max_connections = 200 # 根据服务器配置调整
  4. innodb_buffer_pool_size = 1G # 建议分配总内存的50-70%

2.3 创建应用数据库

  1. CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';
  3. GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%';
  4. FLUSH PRIVILEGES;

三、SpringBoot后端部署

3.1 项目打包与传输

使用Maven打包并上传jar文件:

  1. mvn clean package -DskipTests
  2. scp target/yourapp.jar user@server_ip:/home/ubuntu

3.2 配置系统服务

创建/etc/systemd/system/springboot.service

  1. [Unit]
  2. Description=SpringBoot Application
  3. After=syslog.target
  4. [Service]
  5. User=ubuntu
  6. ExecStart=/usr/bin/java -jar /home/ubuntu/yourapp.jar
  7. SuccessExitStatus=143
  8. Restart=always
  9. [Install]
  10. WantedBy=multi-user.target

启动服务:

  1. sudo systemctl daemon-reload
  2. sudo systemctl enable springboot
  3. sudo systemctl start springboot

四、Vue3前端部署

4.1 项目构建

在本地执行生产环境构建:

  1. npm run build

4.2 Nginx配置

安装Nginx并配置反向代理:

  1. sudo apt install nginx -y
  2. sudo rm /etc/nginx/sites-enabled/default

创建/etc/nginx/sites-available/yourapp

  1. server {
  2. listen 80;
  3. server_name yourdomain.com;
  4. location / {
  5. root /var/www/yourapp/dist;
  6. try_files $uri $uri/ /index.html;
  7. }
  8. location /api {
  9. proxy_pass http://localhost:8080;
  10. proxy_set_header Host $host;
  11. }
  12. }

启用配置:

  1. sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/
  2. sudo systemctl restart nginx

五、安全加固与HTTPS配置

5.1 使用Let’s Encrypt获取SSL证书

  1. sudo apt install certbot python3-certbot-nginx -y
  2. sudo certbot --nginx -d yourdomain.com

5.2 自动续期配置

  1. sudo crontab -e
  2. # 添加以下内容
  3. 0 12 * * * /usr/bin/certbot renew --quiet

六、自动化部署方案

6.1 使用GitHub Actions

示例.github/workflows/deploy.yml

  1. name: Deploy
  2. on:
  3. push:
  4. branches: [ main ]
  5. jobs:
  6. deploy:
  7. runs-on: ubuntu-latest
  8. steps:
  9. - uses: actions/checkout@v3
  10. - name: Build Backend
  11. run: mvn package -DskipTests
  12. - name: Build Frontend
  13. run: |
  14. cd frontend
  15. npm install
  16. npm run build
  17. - name: Deploy to Server
  18. uses: appleboy/scp-action@master
  19. with:
  20. host: ${{ secrets.SERVER_IP }}
  21. username: ${{ secrets.SERVER_USER }}
  22. key: ${{ secrets.SSH_KEY }}
  23. source: "target/*.jar,frontend/dist"
  24. target: "/home/ubuntu"

七、性能监控与优化

7.1 基础监控工具

  1. # 安装监控工具
  2. sudo apt install htop sysstat -y
  3. # 查看实时资源使用
  4. htop

7.2 SpringBoot性能调优

  • 调整JVM参数:-Xms512m -Xmx1024m -XX:+UseG1GC
  • 启用Actuator监控端点
  • 使用连接池(如HikariCP)

7.3 Vue前端优化

  • 配置gzip压缩
  • 启用HTTP/2
  • 使用CDN加速静态资源

八、故障排查指南

8.1 常用诊断命令

  1. # 查看服务日志
  2. journalctl -u springboot --since "1 hour ago"
  3. # 检查端口占用
  4. sudo netstat -tulnp
  5. # 数据库连接测试
  6. mysql -h 127.0.0.1 -u app_user -p app_db

8.2 典型问题解决方案

  1. 端口冲突:修改application.properties中的server.port
  2. 跨域问题:配置SpringBoot的@CrossOrigin或Nginx代理
  3. 静态资源404:检查Nginx的root路径配置

结语

本文详细介绍了在Ubuntu云服务器上部署全栈应用的全流程,从环境准备到自动化部署,涵盖了SpringBoot后端、Vue3前端和MySQL数据库的整合方案。通过合理的配置和优化,可以构建出高性能、易维护的全栈应用系统。建议开发者根据实际业务需求调整配置参数,并建立完善的监控体系确保服务稳定性。

相关文章推荐

发表评论