当前位置: 首页 > ds >正文

Tomcat 企业级运维实战系列(六):综合项目实战:Java 前后端分离架构部署

Tomcat 企业级运维实战系列(六):综合项目实战:Java 前后端分离架构部署

  • 一:概述
  • 二:部署
    • 1)环境准备
    • 2)部署数据库
    • 3)部署后端
    • 4)部署前端
  • 总结


🚀 Tomcat 系列文章导航
本系列系统讲解 Linux 环境下 Apache Tomcat 的部署、配置、管理与优化,并最终带你完成 企业级前后端分离项目上线。无论你是初学者还是想进阶的运维人员,这份路线图都能帮你快速构建完整的知识体系。

⚠️ 该系列所有涉及的软件包和项目都可以私信博主免费获取

  • 👉 第一部分:Tomcat 核心概念与基础部署
  • 👉 第二部分:Tomcat 系统化管理与应用部署
  • 👉 第三部分:Tomcat 配置解析与集群化部署
  • 👉 第四部分:Tomcat 企业级监控
  • 👉 第五部分:Tomcat 优化和安全加固
  • 👉 第六部分:综合项目实战:Java 前后端分离架构部署

一:概述

  • 动静分离

    • 静态资源(html、css、js) → 前端 → 部署到 Nginx
    • 动态功能(Java/PHP/Python/Go…) → 后端 → 部署到 应用服务器,连接数据库。
  • 前后端通信:通过 API 接口(Rest API)

    • API:提供功能的调用接口,调用方无需关心内部
  • 全栈 = 前端 + 后端。

    • 开发流程
      • 前端:Node.js 构建 → 静态资源 → Nginx
    • 后端:Maven/Gradle 构建 → war/jar 包 → Java 运行

二:部署

1)环境准备

角色主机外网IP内网IP
数据库(MySQL)da01192.168.2.109172.16.1.109
前端 + 后端web01192.168.2.104172.16.1.104

2)部署数据库

采用二进制包安装 MySQL

  1. 删除系统自带 MySQL

    [root@db01 ~]# rpm -qa | grep -i mariadb-server | xargs rpm -e --nodeps
    
  2. 解压 MySQL 二进制安装包

    [root@db01 ~]# tar -xvf /opt/software/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /opt/module/
    
    # 重命名
    [root@db01 ~]# mv /opt/module/mysql-8.0.26-linux-glibc2.12-x86_64/ /opt/module/mysql-8.0.26
    
  3. 创建用户

    [root@db01 ~]# useradd -Ms /sbin/nologin mysql
    
  4. 创建数据目录

    [root@db01 ~]# mkdir -p /opt/module/data/mysql
    
  5. 修改配置文件

    [root@db01 ~]# cat > /etc/my.cnf << EOF
    
    [mysqld]
    user=mysql
    basedir=/opt/module/mysql-8.0.26
    datadir=/opt/module/data/mysql
    port=3306
    socket=/tmp/mysql.sock[client]
    socket=/tmp/mysql.sock
    
  6. 添加环境变量

    [root@db01 ~]# vim /etc/profile
    
    # MySQL
    export MYSQL_HOME='/opt/module/mysql-8.0.26'
    export PATH=${MYSQL_HOME}/bin:${PATH}
    
    [root@db01 ~]# source /etc/profile
    
  7. 修改文件所属

    [root@db01 ~]# chown mysql:mysql /etc/my.cnf
    [root@db01 ~]# chown -R mysql:mysql /opt/module/mysql-8.0.26
    
  8. 初始化数据库

    [root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/opt/module/mysql-8.0.26 --datadir=/opt/module/data/mysql
    
  9. 启动 MySQL

    [root@db01 ~]# /etc/init.d/mysqld start
    
  10. 导入数据

    # 1.连接数据库
    [root@db01 ~]# mysql
    mysql> 
    
    # 2.创建数据库
    mysql> create database exam charset utf8mb4;
    
    # 3.创建用户
    mysql> create user 'exam'@'172.16.1.%' identified with mysql_native_password by 'exam';
    
    # 4.授权
    mysql> grant all on exam.* to 'exam'@'172.16.1.%';
    
    # 5.导入数据
    [root@db01 ~]# mysql exam < /opt/software/xzs-mysql.sql
    

3)部署后端

  1. 确定 JDK 环境

    [root@web01 ~]# java -version
    java version "1.8.0_212"
    
  2. 创建项目

    # 1.创建项目目录
    [root@web01 ~]# mkdir -p /opt/module/exam# 2.上传项目 jar 包
    [root@web01 ~]# ls /opt/moduel/exam
    xzs-3.9.0.jar
    
  3. 配置 application-prod.yml

    [root@web01 ~]# vim /opt/module/exam/application-prod.yml
    
    server:port: 8000undertow:io-threads: 16worker-threads: 4000buffer-size: 1024direct-buffers: truecompression:enabled: truemin-response-size: 1
    logging:path: /var/log/xzs/
    spring:datasource:url: jdbc:mysql://172.16.1.109:3306/exam?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=trueusername: 'exam'password: 'exam'driver-class-name: com.mysql.cj.jdbc.Driver
    
  4. 运行后端项目

    也可以后台运行

    nuhup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod /opt/module/exam/xzs-3.9.0.jar > start.log 2>&1 &
    
    [root@web01 ~]# java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod /opt/module/exam/xzs-3.9.0.jar
    

4)部署前端

  1. 创建站点目录

    # 用户端
    [root@web01 ~]# mkdir -p /opt/module/exam/student# 管理端
    [root@web01 ~]# mkdir -p /opt/module/exam/admin
    
  2. 上传前端代码

    [root@web01 ~]# unzip /opt/software/exam-web.zip -d /opt/module/
    
  3. 编辑 exam.conf 配置文件

    [root@web01 ~]# vim /etc/nginx/conf.d/exam.conf
    
    # 用户端
    server {listen 80;server_name student.cn;root /opt/module/exam-web/student/;location / {index index.html;}location /api/ {proxy_pass http://localhost:8000;}
    }# 管理端
    server {listen 80;server_name admin.cn;root /opt/module/exam-web/admin/;location / {index index.html;}location /api/ {proxy_pass http://localhost:8000;}
    }
    
  4. 刷新 Nginx

    [root@web01 ~]# nginx -t
    [root@web01 ~]# ngins -s reload
    
  5. 编辑 hosts

    192.168.2.104 student.cn admin.cn
    
  6. 访问

    • 用户端

      http://student.cn

      user:student

      password:123456

    • 管理端

      http://admin.cn

      user:admin

      password:123456


总结

📌 本节重点回顾

  • 前后端分离架构

    • 静态资源(HTML/CSS/JS)由 Nginx 托管,负责页面展示。

    • 动态业务逻辑(Java 项目)运行在 后端应用服务器,通过 API 接口 与前端交互。

    • 数据库(MySQL)提供数据支撑,实现前后端解耦。

  • 部署流程

    • 数据库层:二进制安装 MySQL → 配置用户与权限 → 导入业务数据。

    • 后端层:准备 JDK → 部署 SpringBoot Jar 包 → 配置 application-prod.yml → 启动服务(8000 端口)。

    • 前端层:Nginx 部署前端代码 → 配置虚拟主机(student.cn / admin.cn) → 反向代理 API 请求到后端。

  • 访问效果

    • 用户端:http://student.cn

    • 管理端:http://admin.cn

    • 通过 域名 + Nginx 转发,实现前端、后端、数据库的完整交互。

至此,你已经完成了 企业级 Java 前后端分离架构的完整上线流程,能够独立搭建一个包含数据库、后端服务、前端站点的生产环境。
这一系列学完,相当于完成了 Tomcat 企业级运维实战 —— 以后无论是个人项目还是企业生产环境,你都能独立完成稳定、高效的部署与运维。

http://www.xdnf.cn/news/19423.html

相关文章:

  • 〔从零搭建〕数据中枢平台部署指南
  • 汽车加气站操作工证考试的复习重点是什么?
  • 如何取得专案/设计/设定/物件的属性
  • ETCD学习笔记
  • 手表--带屏幕音响-时间制切换12/24小时
  • 从零开始学习单片机18
  • 《云原生架构从崩溃失控到稳定自愈的实践方案》
  • 消费 $83,用Claude 实现临床护理系统记录单(所见即所得版)
  • C++三方服务异步拉起
  • MySQL函数 - String函数
  • Google Protobuf初体验
  • 深层语义在自然语言处理中的理论框架与技术融合研究
  • 使用电脑操作Android11手机,连接步骤
  • Python爬虫实战:研究统计学方法,构建电商平台数据分析系统
  • 面经分享--小米Java一面
  • 具有类人先验知识的 Affordance-觉察机器人灵巧抓取
  • STM32 之GP2Y1014AU0F的应用--基于RTOS的环境
  • 老题新解|不与最大数相同的数字之和
  • PCB 局部厚铜工艺:技术升级与新兴场景应用,猎板加工亮点
  • 同步/异步日志库
  • 响应式编程框架Reactor【4】
  • Web 聊天室消息加解密方案详解
  • open webui源码分析13-模型管理
  • 数据结构--栈(Stack) 队列(Queue)
  • Python API接口实战指南:从入门到精通
  • Linux查看有线网卡和无线网卡详解
  • 【Linux】基础I/O和文件系统
  • 初学者如何学习项目管理
  • 计算机毕设javayit商城 基于SSM框架的校园二手交易全流程管理系统设计与实现 Java+MySQL的校园二手商品交易与供需对接平台开发
  • 【嵌入式原理系列-第六篇】从Flash到RAM:MCU ld脚本全解析