[Java] 基于 SpringBoot 实战 Web 项目《TLIAS 智能学习辅助系统 》资料完整-课程合集

0 阅读3分钟

t014252a54c85506e74.png

【部署上线】Docker + Nginx + MySQL 一键部署 Tlias?手把手教你把学习项目跑在云服务器上

学完后端开发,写了一个像模像样的管理系统(比如经典的 Tlias 人力资源管理系统),本地运行一切正常——但如何让同学、面试官或自己在外网访问它?很多初学者卡在“部署”这最后一公里:环境依赖复杂、端口配置混乱、数据库连不上……其实,借助 Docker 容器化技术,配合 Nginx 反向代理和 MySQL 服务,我们完全可以实现 “一键部署、快速上线” 。本文以 Tlias 项目为例,手把手带你将 Spring Boot + Vue 的全栈应用部署到云服务器。


一、准备工作:一台云服务器 + 基础环境

  1. 购买云服务器:阿里云/腾讯云轻量应用服务器(1核2G足够),系统选 Ubuntu 22.04;

  2. 开放安全组端口:确保 80(HTTP)、443(HTTPS)、22(SSH)端口开放;

  3. 安装基础工具

    sudo apt update
    sudo apt install -y docker.io docker-compose
    sudo systemctl enable --now docker
    

二、项目结构梳理

假设你的 Tlias 项目包含:

  • 后端:tlias-backend.jar(Spring Boot,内嵌 Tomcat,默认端口 8080)
  • 前端:dist/ 目录(Vue 打包后的静态文件)
  • 数据库:MySQL,需初始化 tlias.sql 表结构

目标:用户访问 http://你的服务器IP → Nginx 返回前端页面;
API 请求(如 /api/depts)→ Nginx 代理到后端 8080 端口。


三、Docker Compose 编排:三服务一体

在服务器新建目录 ~/tlias-deploy,创建 docker-compose.yml

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_DATABASE: tlias
    volumes:
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql  # 初始化脚本
      - mysql_data:/var/lib/mysql
    ports:
      - "3306:3306"  # 仅调试用,生产建议移除

  backend:
    build:
      context: .
      dockerfile: Dockerfile.backend
    restart: always
    depends_on:
      - mysql
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/tlias?useSSL=false
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: root123
    ports:
      - "8080:8080"

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./dist:/usr/share/nginx/html
    depends_on:
      - backend

volumes:
  mysql_data:

四、关键文件准备

  1. 后端 DockerfileDockerfile.backend):

    FROM openjdk:17-jdk-slim
    COPY tlias-backend.jar app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]
    
  2. Nginx 配置nginx.conf):

    events {}
    http {
      server {
        listen 80;
        location / {
          root /usr/share/nginx/html;
          index index.html;
          try_files $uri $uri/ /index.html;
        }
        location /api/ {
          proxy_pass http://backend:8080/;
          proxy_set_header Host $host;
        }
      }
    }
    
  3. 数据库初始化脚本init.sql):放入你的建表语句。

tlias-backend.jardist/、上述配置文件全部上传至服务器 ~/tlias-deploy 目录。


五、一键启动 & 验证

tlias-deploy 目录下执行:

docker-compose up -d

等待10秒,浏览器访问 http://你的服务器IP,即可看到 Tlias 系统首页!所有 API 请求自动代理到后端,数据持久化在 MySQL 中。


六、进阶建议

  • 域名 + HTTPS:用 Certbot 为 Nginx 配置免费 SSL 证书;
  • 日志查看docker-compose logs -f backend 实时调试;
  • 数据备份:定期备份 mysql_data 卷;
  • 安全加固:关闭 MySQL 3306 外网端口,仅容器间通信。

结语

通过 Docker Compose,我们将原本分散的组件整合为一个可移植、易维护的部署单元。这不仅让你的学习项目真正“上线”,更掌握了企业级应用交付的核心范式。从本地 run 起来到云上跑起来,是每个开发者迈向工程化的关键一步。现在,就去给你的 Tlias 一个公网身份证吧!