logo

AI全栈工程师进阶:Ubuntu云服务器部署Spring+Vue+MySQL全指南

作者:起个名字好难2025.09.23 14:43浏览量:0

简介:本文详细阐述在Ubuntu云服务器上部署Spring Boot后端、Vue前端及MySQL数据库的全流程,涵盖环境配置、依赖安装、代码部署及安全优化,助力开发者构建高效全栈应用。

AI全栈工程师进阶:Ubuntu云服务器部署Spring+Vue+MySQL全指南

在AI与全栈开发深度融合的今天,构建一个完整的Web应用不仅需要前端交互的流畅性,更依赖后端服务的稳定性与数据库的高效性。本文将以Ubuntu云服务器为环境基础,系统讲解如何部署Spring Boot(后端)、Vue.js(前端)和MySQL(数据库)的全栈架构,为开发者提供从零到一的实战指南。

一、环境准备:Ubuntu云服务器的初始化配置

1.1 服务器选择与基础设置

选择Ubuntu LTS版本(如22.04)作为操作系统,因其长期支持特性和广泛的社区资源。购买云服务器后,需完成以下基础配置:

  • SSH密钥登录:禁用密码登录,使用SSH密钥提高安全性。
  • 防火墙规则:开放22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)端口,其余端口默认关闭。
  • 用户管理:创建专用用户(如devuser),避免直接使用root操作。

1.2 依赖工具安装

通过apt安装必要工具:

  1. sudo apt update && sudo apt install -y \
  2. openjdk-17-jdk maven git nginx curl wget
  • Java 17:Spring Boot 3.x的最低要求。
  • Maven:项目构建工具。
  • Nginx:反向代理与静态资源托管。

二、MySQL数据库部署与优化

2.1 MySQL安装与配置

  1. sudo apt install -y mysql-server
  2. sudo mysql_secure_installation # 设置root密码、移除匿名用户等
  • 创建专用用户:避免使用root连接应用。
    1. CREATE DATABASE ai_fullstack_db;
    2. CREATE USER 'devuser'@'%' IDENTIFIED BY 'StrongPassword123!';
    3. GRANT ALL PRIVILEGES ON ai_fullstack_db.* TO 'devuser'@'%';
    4. FLUSH PRIVILEGES;

2.2 性能优化建议

  • 配置文件调整:修改/etc/mysql/mysql.conf.d/mysqld.cnf,设置:
    1. innodb_buffer_pool_size = 1G # 根据内存调整
    2. max_connections = 200
  • 慢查询日志:启用以监控性能瓶颈。

三、Spring Boot后端部署

3.1 项目构建与依赖管理

假设项目已通过Maven管理依赖,需确保pom.xml包含关键配置:

  1. <properties>
  2. <java.version>17</java.version>
  3. <spring-boot.version>3.1.0</spring-boot.version>
  4. </properties>
  5. <dependencies>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-web</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-data-jpa</artifactId>
  13. </dependency>
  14. <dependency>
  15. <groupId>mysql</groupId>
  16. <artifactId>mysql-connector-java</artifactId>
  17. </dependency>
  18. </dependencies>

3.2 数据库连接配置

application.properties中设置:

  1. spring.datasource.url=jdbc:mysql://localhost:3306/ai_fullstack_db?useSSL=false
  2. spring.datasource.username=devuser
  3. spring.datasource.password=StrongPassword123!
  4. spring.jpa.hibernate.ddl-auto=update

3.3 打包与运行

  1. mvn clean package # 生成target/your-app.jar
  2. nohup java -jar target/your-app.jar > app.log 2>&1 &
  • 进程管理:使用systemd服务实现开机自启(推荐)。

四、Vue.js前端部署

4.1 构建静态资源

  1. npm install # 安装依赖
  2. npm run build # 生成dist目录

4.2 Nginx配置反向代理

编辑/etc/nginx/sites-available/ai-fullstack

  1. server {
  2. listen 80;
  3. server_name your-domain.com;
  4. location / {
  5. root /var/www/vue-app;
  6. try_files $uri $uri/ /index.html;
  7. }
  8. location /api {
  9. proxy_pass http://localhost:8080; # 转发至Spring Boot
  10. proxy_set_header Host $host;
  11. }
  12. }
  • 静态资源托管:将dist目录内容复制至/var/www/vue-app
  • HTTPS配置:使用Let’s Encrypt免费证书:
    1. sudo apt install -y certbot python3-certbot-nginx
    2. sudo certbot --nginx -d your-domain.com

五、全栈集成与测试

5.1 跨域问题解决

在Spring Boot中配置CORS:

  1. @Configuration
  2. public class WebConfig implements WebMvcConfigurer {
  3. @Override
  4. public void addCorsMappings(CorsRegistry registry) {
  5. registry.addMapping("/**")
  6. .allowedOrigins("https://your-domain.com")
  7. .allowedMethods("*");
  8. }
  9. }

5.2 端到端测试

  • API测试:使用curl或Postman验证/api/endpoint
  • 前端访问:通过浏览器访问https://your-domain.com,检查数据交互是否正常。

六、安全与维护建议

6.1 安全加固

  • 定期更新sudo apt update && sudo apt upgrade
  • 备份策略:每日自动备份MySQL数据库(mysqldump)。
  • 日志监控:使用logrotate管理日志文件大小。

6.2 性能监控

  • Prometheus + Grafana:监控JVM指标、Nginx请求量等。
  • Spring Boot Actuator:暴露健康检查端点(需配置安全)。

七、常见问题与解决方案

7.1 MySQL连接失败

  • 错误现象Communications link failure
  • 排查步骤
    1. 检查MySQL服务状态:sudo systemctl status mysql
    2. 验证用户权限:SELECT host, user FROM mysql.user;
    3. 检查防火墙规则:sudo ufw status

7.2 Vue前端资源404

  • 原因:Nginx未正确配置try_files
  • 解决:确保location /块包含try_files $uri $uri/ /index.html;

八、扩展与优化方向

8.1 容器化部署

使用Docker简化环境配置:

  1. # Spring Boot Dockerfile示例
  2. FROM openjdk:17-jdk-slim
  3. COPY target/your-app.jar app.jar
  4. ENTRYPOINT ["java", "-jar", "app.jar"]

8.2 CI/CD流水线

结合GitHub Actions或Jenkins实现自动化构建与部署。

结语

通过本文的步骤,开发者可在Ubuntu云服务器上快速搭建一个完整的Spring Boot + Vue.js + MySQL全栈应用。从环境初始化到安全优化,每个环节均需严谨配置,以确保系统的稳定性与可扩展性。未来,随着AI技术的深入应用,全栈架构的自动化运维与智能监控将成为新的发展方向。

相关文章推荐

发表评论