部署路径更新: - fund-admin 部署路径: /fadmin/ - fund-mobile 部署路径: /fmobile/ - API网关前缀: /fund 更新内容: 1. 部署运维文档.md - 本地开发访问地址添加移动端H5 - Docker Compose架构图更新前端访问路径 - 服务清单添加访问路径说明 - Nginx配置示例更新为子路径部署 2. 单机部署文档.md - 部署架构图更新前端路径 - 前端打包说明添加部署脚本和子路径说明 - 新增4.5 Nginx配置章节 - 添加前端解压部署步骤
905 lines
28 KiB
Markdown
905 lines
28 KiB
Markdown
# 资金服务平台单机部署文档
|
||
|
||
> 版本: v2.2
|
||
> 更新日期: 2026-02-13
|
||
> 作者: zhangjf
|
||
|
||
---
|
||
|
||
## 一、部署概述
|
||
|
||
### 1.1 部署架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 单机部署架构 │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────────┐ │
|
||
│ │ 前端服务 │ │
|
||
│ │ fund-admin (/fadmin/) fund-mobile (/fmobile/) │ │
|
||
│ └─────────────────────────┬───────────────────────────────┘ │
|
||
│ │ │
|
||
│ ┌─────────────────────────▼───────────────────────────────┐ │
|
||
│ │ Gateway (8000) │ │
|
||
│ │ API网关 + Token验证 │ │
|
||
│ └─────────────────────────┬───────────────────────────────┘ │
|
||
│ │ │
|
||
│ ┌─────────────────────────┼───────────────────────────────┐ │
|
||
│ │ │ │ │
|
||
│ │ ┌────────┬────────┬───┴───┬────────┬────────┐ │ │
|
||
│ │ ▼ ▼ ▼ ▼ ▼ ▼ │ │
|
||
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
|
||
│ │ │ sys │ │ cust │ │ proj │ │ req │ │ exp │ │rcpt │ │ │
|
||
│ │ │:8100 │ │:8200 │ │:8300 │ │:8400 │ │:8500 │ │:8600 │ │ │
|
||
│ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌──────┐ ┌──────┐ │ │
|
||
│ │ │report│ │ file │ │ │
|
||
│ │ │:8700 │ │:8800 │ │ │
|
||
│ │ └──────┘ └──────┘ │ │
|
||
│ │ │ │
|
||
│ │ 业务微服务集群 │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌──────────────────────────────────────────────────────────┐ │
|
||
│ │ 基础设施服务 │ │
|
||
│ │ MySQL(3306) Redis(6379) Nacos(8848/8048) │ │
|
||
│ └──────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 1.2 服务清单
|
||
|
||
| 服务名称 | 端口 | 说明 |
|
||
|----------|------|------|
|
||
| fund-gateway | 8000 | API网关 |
|
||
| fund-sys | 8100 | 系统管理服务 |
|
||
| fund-cust | 8200 | 客户管理服务 |
|
||
| fund-proj | 8300 | 项目管理服务 |
|
||
| fund-req | 8400 | 需求工单服务 |
|
||
| fund-exp | 8500 | 支出管理服务 |
|
||
| fund-receipt | 8600 | 收款管理服务 |
|
||
| fund-report | 8700 | 报表服务 |
|
||
| fund-file | 8800 | 文件服务 |
|
||
|
||
### 1.3 目录结构
|
||
|
||
```
|
||
/opt/fundplatform/ # 应用根目录
|
||
├── deploy/ # 部署目录
|
||
│ ├── fund-gateway/ # Gateway服务
|
||
│ │ ├── bin/ # 脚本目录
|
||
│ │ │ ├── start.sh # 启动脚本
|
||
│ │ │ ├── stop.sh # 停止脚本
|
||
│ │ │ ├── restart.sh # 重启脚本
|
||
│ │ │ └── status.sh # 状态查看脚本
|
||
│ │ ├── lib/ # 依赖JAR目录
|
||
│ │ │ └── fund-gateway.jar # 服务JAR包
|
||
│ │ └── conf/ # 配置文件目录
|
||
│ │ └── application.yml # 服务配置文件
|
||
│ ├── fund-sys/ # 系统服务
|
||
│ │ ├── bin/
|
||
│ │ ├── lib/
|
||
│ │ └── conf/
|
||
│ ├── fund-cust/ # 客户服务
|
||
│ ├── fund-proj/ # 项目服务
|
||
│ ├── fund-req/ # 需求服务
|
||
│ ├── fund-exp/ # 支出服务
|
||
│ ├── fund-receipt/ # 收款服务
|
||
│ ├── fund-report/ # 报表服务
|
||
│ ├── fund-file/ # 文件服务
|
||
│ ├── start-all.sh # 一键启动所有服务
|
||
│ ├── stop-all.sh # 一键停止所有服务
|
||
│ ├── restart-all.sh # 一键重启所有服务
|
||
│ └── status.sh # 查看所有服务状态
|
||
├── packages/ # 发布包目录
|
||
│ ├── fund-gateway.tar.gz # Gateway服务发布包
|
||
│ ├── fund-sys.tar.gz # 系统服务发布包
|
||
│ ├── fund-cust.tar.gz # 客户服务发布包
|
||
│ ├── fund-proj.tar.gz # 项目服务发布包
|
||
│ ├── fund-req.tar.gz # 需求服务发布包
|
||
│ ├── fund-exp.tar.gz # 支出服务发布包
|
||
│ ├── fund-receipt.tar.gz # 收款服务发布包
|
||
│ ├── fund-report.tar.gz # 报表服务发布包
|
||
│ ├── fund-file.tar.gz # 文件服务发布包
|
||
│ ├── fund-admin.zip # 管理后台前端发布包
|
||
│ └── fund-mobile.zip # 移动端H5发布包
|
||
├── sql/ # 数据库脚本
|
||
│ ├── fund_platform_schema.sql # 表结构
|
||
│ └── fund_platform_init.sql # 初始化数据
|
||
└── config/ # 公共配置
|
||
└── env.properties # 环境变量配置
|
||
|
||
/datacfs/applogs/ # 日志根目录
|
||
├── fund-gateway/ # Gateway日志
|
||
│ ├── info.log
|
||
│ ├── error.log
|
||
│ └── aop.log
|
||
├── fund-sys/ # 系统服务日志
|
||
├── fund-cust/ # 客户服务日志
|
||
├── fund-proj/ # 项目服务日志
|
||
├── fund-req/ # 需求服务日志
|
||
├── fund-exp/ # 支出服务日志
|
||
├── fund-receipt/ # 收款服务日志
|
||
├── fund-report/ # 报表服务日志
|
||
└── fund-file/ # 文件服务日志
|
||
```
|
||
|
||
---
|
||
|
||
## 二、环境安装与配置
|
||
|
||
### 2.1 环境要求
|
||
|
||
| 组件 | 版本要求 | 说明 |
|
||
|------|----------|------|
|
||
| 操作系统 | CentOS 7+ / Ubuntu 18+ | Linux服务器 |
|
||
| JDK | 21+ | Java运行环境 |
|
||
| MySQL | 8.0+ | 数据库 |
|
||
| Redis | 7.0+ | 缓存服务 |
|
||
| Nacos | 3.0+ | 服务注册中心 |
|
||
|
||
### 2.2 安装 JDK 21
|
||
|
||
```bash
|
||
# 方式一:使用包管理器安装 (Ubuntu)
|
||
sudo apt update
|
||
sudo apt install openjdk-21-jdk
|
||
|
||
# 方式二:使用包管理器安装 (CentOS)
|
||
sudo yum install java-21-openjdk java-21-openjdk-devel
|
||
|
||
# 方式三:手动安装
|
||
cd /opt
|
||
wget https://download.java.net/openjdk/jdk21/ri/openjdk-21+35_linux-x64_bin.tar.gz
|
||
tar -xzf openjdk-21+35_linux-x64_bin.tar.gz
|
||
ln -s /opt/jdk-21 /opt/java
|
||
|
||
# 配置环境变量
|
||
cat >> /etc/profile << 'EOF'
|
||
export JAVA_HOME=/opt/java
|
||
export PATH=$JAVA_HOME/bin:$PATH
|
||
EOF
|
||
|
||
source /etc/profile
|
||
|
||
# 验证安装
|
||
java -version
|
||
```
|
||
|
||
### 2.3 安装 MySQL 8.0
|
||
|
||
```bash
|
||
# Ubuntu 安装
|
||
sudo apt update
|
||
sudo apt install mysql-server-8.0
|
||
|
||
# CentOS 安装
|
||
sudo yum install mysql-server
|
||
|
||
# 启动MySQL
|
||
sudo systemctl start mysql
|
||
sudo systemctl enable mysql
|
||
|
||
# 配置root密码
|
||
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'zjf@123456';"
|
||
|
||
# 创建数据库用户(可选,用于应用连接)
|
||
sudo mysql -u root -p'zjf@123456' << 'EOF'
|
||
CREATE USER 'fund_user'@'%' IDENTIFIED BY 'Fund@123456';
|
||
GRANT ALL PRIVILEGES ON *.* TO 'fund_user'@'%' WITH GRANT OPTION;
|
||
FLUSH PRIVILEGES;
|
||
EOF
|
||
```
|
||
|
||
### 2.4 安装 Redis 7.0
|
||
|
||
```bash
|
||
# Ubuntu 安装
|
||
sudo apt update
|
||
sudo apt install redis-server
|
||
|
||
# CentOS 安装 (需要EPEL源)
|
||
sudo yum install epel-release
|
||
sudo yum install redis
|
||
|
||
# 配置密码
|
||
sudo sed -i 's/# requirepass foobared/requirepass zjf@123456/' /etc/redis/redis.conf
|
||
|
||
# 配置持久化
|
||
sudo sed -i 's/appendonly no/appendonly yes/' /etc/redis/redis.conf
|
||
|
||
# 启动Redis
|
||
sudo systemctl restart redis
|
||
sudo systemctl enable redis
|
||
|
||
# 验证安装
|
||
redis-cli -a 'zjf@123456' ping
|
||
```
|
||
|
||
### 2.5 安装 Nacos 3.0
|
||
|
||
```bash
|
||
# 下载Nacos
|
||
cd /opt
|
||
wget https://github.com/alibaba/nacos/releases/download/3.0.0/nacos-server-3.0.0.tar.gz
|
||
tar -xzf nacos-server-3.0.0.tar.gz
|
||
mv nacos nacos-server
|
||
|
||
# 配置端口(可选,默认8848)
|
||
cd /opt/nacos-server/conf
|
||
sed -i 's/server.port=8848/server.port=8848/' application.properties
|
||
|
||
# 配置MySQL持久化(推荐生产环境使用)
|
||
cat >> application.properties << 'EOF'
|
||
spring.datasource.platform=mysql
|
||
db.num=1
|
||
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
|
||
db.user.0=root
|
||
db.password.0=zjf@123456
|
||
EOF
|
||
|
||
# 创建Nacos数据库
|
||
mysql -u root -p'zjf@123456' << 'EOF'
|
||
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
EOF
|
||
|
||
# 导入Nacos表结构
|
||
mysql -u root -p'zjf@123456' nacos_config < /opt/nacos-server/conf/mysql-schema.sql
|
||
|
||
# 启动Nacos(单机模式)
|
||
cd /opt/nacos-server/bin
|
||
sh startup.sh -m standalone
|
||
|
||
# 查看启动日志
|
||
tail -f /opt/nacos-server/logs/start.out
|
||
|
||
# 访问控制台
|
||
# http://服务器IP:8848/nacos
|
||
# 默认账号密码:nacos / nacos
|
||
```
|
||
|
||
### 2.6 创建Nacos命名空间
|
||
|
||
```bash
|
||
# 登录Nacos控制台或使用API创建命名空间
|
||
curl -X POST 'http://localhost:8848/nacos/v1/console/namespaces' \
|
||
-d 'customNamespaceId=fund-platform' \
|
||
-d 'namespaceName=资金服务平台' \
|
||
-d 'namespaceDesc=资金服务平台命名空间'
|
||
```
|
||
|
||
---
|
||
|
||
## 三、数据库创建和初始化
|
||
|
||
### 3.1 创建数据库
|
||
|
||
```bash
|
||
# 登录MySQL
|
||
mysql -u root -p'zjf@123456'
|
||
|
||
# 执行创建数据库脚本
|
||
```
|
||
|
||
```sql
|
||
-- 创建各服务数据库
|
||
CREATE DATABASE IF NOT EXISTS fund_sys
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_cust
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_proj
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_req
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_exp
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_receipt
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_report
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
CREATE DATABASE IF NOT EXISTS fund_file
|
||
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
-- 查看数据库
|
||
SHOW DATABASES;
|
||
```
|
||
|
||
### 3.2 初始化表结构
|
||
|
||
```bash
|
||
# 上传SQL脚本到服务器
|
||
cd /opt/fundplatform
|
||
mkdir -p sql
|
||
|
||
# 执行表结构脚本
|
||
mysql -u root -p'zjf@123456' fund_sys < sql/fund_sys_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_cust < sql/fund_cust_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_proj < sql/fund_proj_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_req < sql/fund_req_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_exp < sql/fund_exp_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_receipt < sql/fund_receipt_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_report < sql/fund_report_schema.sql
|
||
mysql -u root -p'zjf@123456' fund_file < sql/fund_file_schema.sql
|
||
|
||
# 执行初始化数据脚本
|
||
mysql -u root -p'zjf@123456' fund_sys < sql/fund_sys_init.sql
|
||
```
|
||
|
||
---
|
||
|
||
## 四、服务部署
|
||
|
||
### 4.1 创建部署目录
|
||
|
||
```bash
|
||
# 创建应用目录
|
||
mkdir -p /opt/fundplatform/deploy
|
||
mkdir -p /opt/fundplatform/sql
|
||
mkdir -p /opt/fundplatform/config
|
||
|
||
# 创建日志目录
|
||
mkdir -p /datacfs/applogs/fund-gateway
|
||
mkdir -p /datacfs/applogs/fund-sys
|
||
mkdir -p /datacfs/applogs/fund-cust
|
||
mkdir -p /datacfs/applogs/fund-proj
|
||
mkdir -p /datacfs/applogs/fund-req
|
||
mkdir -p /datacfs/applogs/fund-exp
|
||
mkdir -p /datacfs/applogs/fund-receipt
|
||
mkdir -p /datacfs/applogs/fund-report
|
||
mkdir -p /datacfs/applogs/fund-file
|
||
```
|
||
|
||
### 4.2 编译打包
|
||
|
||
项目使用 **Maven Assembly Plugin** 实现标准化打包,每个服务打包为一个独立的 `tar.gz` 文件。
|
||
|
||
#### 4.2.1 后端服务打包
|
||
|
||
```bash
|
||
# 在开发机上编译打包
|
||
mvn clean package -DskipTests
|
||
|
||
# 打包结果(位于各模块的target目录)
|
||
# fund-gateway/target/fund-gateway.tar.gz
|
||
# fund-sys/target/fund-sys.tar.gz
|
||
# fund-cust/target/fund-cust.tar.gz
|
||
# fund-proj/target/fund-proj.tar.gz
|
||
# fund-req/target/fund-req.tar.gz
|
||
# fund-exp/target/fund-exp.tar.gz
|
||
# fund-receipt/target/fund-receipt.tar.gz
|
||
# fund-report/target/fund-report.tar.gz
|
||
# fund-file/target/fund-file.tar.gz
|
||
```
|
||
|
||
#### 4.2.2 打包结构说明
|
||
|
||
每个服务的 `tar.gz` 包解压后包含以下目录结构:
|
||
|
||
```
|
||
fund-sys/
|
||
├── bin/ # 脚本目录(统一从项目根目录scripts引用)
|
||
│ ├── start.sh # 启动脚本(自动识别服务名)
|
||
│ ├── stop.sh # 停止脚本
|
||
│ ├── restart.sh # 重启脚本
|
||
│ └── status.sh # 状态查看脚本
|
||
├── lib/ # 依赖JAR目录
|
||
│ └── fund-sys.jar # 服务JAR包(包含所有依赖)
|
||
└── conf/ # 配置文件目录(排除docker相关配置)
|
||
├── env.properties # 统一配置(所有服务共用)
|
||
├── service.properties # 个性化配置(每服务独立)
|
||
├── application.yml # 主配置文件
|
||
├── application-*.yml # 环境配置文件
|
||
└── logback-spring.xml # 日志配置文件
|
||
```
|
||
|
||
#### 4.2.3 Assembly打包配置
|
||
|
||
项目使用统一的Assembly配置,脚本统一管理在项目根目录:
|
||
|
||
```
|
||
fundplatform/
|
||
├── assembly/
|
||
│ └── assembly.xml # 统一的Assembly配置
|
||
├── scripts/ # 统一的脚本目录
|
||
│ ├── start.sh # 启动脚本(自动识别服务名)
|
||
│ ├── stop.sh # 停止脚本
|
||
│ ├── restart.sh # 重启脚本
|
||
│ ├── status.sh # 状态查看脚本
|
||
│ ├── env.properties # 环境变量配置模板
|
||
│ ├── start-all.sh # 一键启动所有服务
|
||
│ ├── stop-all.sh # 一键停止所有服务
|
||
│ ├── restart-all.sh # 一键重启所有服务
|
||
│ └── status-all.sh # 查看所有服务状态
|
||
└── ...各服务模块
|
||
```
|
||
|
||
**Assembly配置特点:**
|
||
- 脚本从项目根目录 `scripts/` 引用,避免重复
|
||
- 配置文件排除 `application-docker.yml` 等Docker相关配置
|
||
- 统一配置 `env.properties` 和个性化配置 `service.properties` 分离
|
||
- 个性化配置覆盖统一配置,支持多租户部署
|
||
|
||
#### 4.2.4 前端打包
|
||
|
||
前端项目采用 Nginx 子路径部署方式:
|
||
- **管理后台** (fund-admin): 部署路径 `/fadmin/`
|
||
- **移动端H5** (fund-mobile): 部署路径 `/fmobile/`
|
||
- **API网关前缀**: `/fund`
|
||
|
||
```bash
|
||
# 使用部署脚本打包(推荐)
|
||
./scripts/deploy-frontend-nginx.sh admin # 管理后台
|
||
./scripts/deploy-frontend-nginx.sh mobile # 移动端H5
|
||
|
||
# 或手动打包
|
||
# 管理后台打包
|
||
cd fund-admin
|
||
npm install
|
||
npm run build
|
||
# 生成 dist 目录,打包为 fund-admin.zip
|
||
zip -r fund-admin.zip dist/
|
||
|
||
# 移动端H5打包
|
||
cd fund-mobile
|
||
npm install
|
||
npm run build
|
||
# 生成 dist 目录,打包为 fund-mobile.zip
|
||
zip -r fund-mobile.zip dist/
|
||
```
|
||
|
||
### 4.3 上传部署文件
|
||
|
||
```bash
|
||
# 创建发布包目录
|
||
mkdir -p /opt/fundplatform/packages
|
||
|
||
# 上传后端服务发布包
|
||
scp fund-gateway/target/fund-gateway.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-sys/target/fund-sys.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-cust/target/fund-cust.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-proj/target/fund-proj.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-req/target/fund-req.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-exp/target/fund-exp.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-receipt/target/fund-receipt.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-report/target/fund-report.tar.gz user@server:/opt/fundplatform/packages/
|
||
scp fund-file/target/fund-file.tar.gz user@server:/opt/fundplatform/packages/
|
||
|
||
# 上传前端发布包
|
||
scp fund-admin.zip user@server:/opt/fundplatform/packages/
|
||
scp fund-mobile.zip user@server:/opt/fundplatform/packages/
|
||
```
|
||
|
||
### 4.4 解压部署
|
||
|
||
```bash
|
||
# 解压后端服务到deploy目录
|
||
cd /opt/fundplatform/packages
|
||
|
||
tar -xzf fund-gateway.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-sys.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-cust.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-proj.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-req.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-exp.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-receipt.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-report.tar.gz -C /opt/fundplatform/deploy/
|
||
tar -xzf fund-file.tar.gz -C /opt/fundplatform/deploy/
|
||
|
||
# 解压前端发布包
|
||
mkdir -p /opt/fundplatform/web
|
||
unzip fund-admin-nginx.zip -d /opt/fundplatform/web/admin/
|
||
unzip fund-mobile-nginx.zip -d /opt/fundplatform/web/mobile/
|
||
|
||
# 复制Nginx配置
|
||
cp /opt/fundplatform/web/admin/nginx.conf /etc/nginx/conf.d/fadmin.conf
|
||
cp /opt/fundplatform/web/mobile/nginx.conf /etc/nginx/conf.d/fmobile.conf
|
||
|
||
```
|
||
|
||
### 4.5 Nginx 配置
|
||
|
||
前端采用子路径部署,Nginx 配置示例:
|
||
|
||
```nginx
|
||
# /etc/nginx/conf.d/fundplatform.conf
|
||
server {
|
||
listen 80;
|
||
server_name localhost;
|
||
|
||
# 管理后台 (部署路径: /fadmin/)
|
||
location /fadmin/ {
|
||
alias /opt/fundplatform/web/admin/;
|
||
try_files $uri $uri/ /fadmin/index.html;
|
||
}
|
||
|
||
# 移动端H5 (部署路径: /fmobile/)
|
||
location /fmobile/ {
|
||
alias /opt/fundplatform/web/mobile/;
|
||
try_files $uri $uri/ /fmobile/index.html;
|
||
}
|
||
|
||
# API代理 (网关前缀: /fund)
|
||
location /fund/ {
|
||
proxy_pass http://127.0.0.1:8000/;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
}
|
||
}
|
||
```
|
||
|
||
**访问地址**:
|
||
- 管理后台: `http://服务器IP/fadmin/`
|
||
- 移动端H5: `http://服务器IP/fmobile/`
|
||
|
||
```bash
|
||
# 上传一键管理脚本到deploy目录(在解压服务包后执行)
|
||
# 一键管理脚本位于项目根目录scripts目录,需要单独上传
|
||
cp scripts/start-all.sh /opt/fundplatform/deploy/
|
||
cp scripts/stop-all.sh /opt/fundplatform/deploy/
|
||
cp scripts/restart-all.sh /opt/fundplatform/deploy/
|
||
cp scripts/status-all.sh /opt/fundplatform/deploy/
|
||
```
|
||
|
||
### 4.6 配置文件修改
|
||
|
||
各服务配置文件需要根据实际环境修改以下配置:
|
||
|
||
```yaml
|
||
# MySQL配置
|
||
spring:
|
||
datasource:
|
||
url: jdbc:mysql://数据库IP:3306/fund_sys?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
||
username: fund_user
|
||
password: Fund@123456
|
||
|
||
# Redis配置
|
||
data:
|
||
redis:
|
||
host: Redis服务器IP
|
||
port: 6379
|
||
password: zjf@123456
|
||
|
||
# Nacos配置
|
||
cloud:
|
||
nacos:
|
||
discovery:
|
||
server-addr: Nacos服务器IP:8848
|
||
namespace: fund-platform
|
||
```
|
||
|
||
### 4.7 服务管理脚本
|
||
|
||
每个服务的 `bin` 目录下包含以下脚本:
|
||
|
||
| 脚本 | 说明 |
|
||
|------|------|
|
||
| start.sh | 启动服务 |
|
||
| stop.sh | 停止服务 |
|
||
| restart.sh | 重启服务 |
|
||
| status.sh | 查看服务状态 |
|
||
|
||
#### 4.6.1 单服务管理
|
||
|
||
```bash
|
||
# 启动单个服务
|
||
/opt/fundplatform/deploy/fund-sys/bin/start.sh
|
||
|
||
# 停止单个服务
|
||
/opt/fundplatform/deploy/fund-sys/bin/stop.sh
|
||
|
||
# 重启单个服务
|
||
/opt/fundplatform/deploy/fund-sys/bin/restart.sh
|
||
|
||
# 查看服务状态
|
||
/opt/fundplatform/deploy/fund-sys/bin/status.sh
|
||
```
|
||
|
||
#### 4.6.2 一键管理所有服务
|
||
|
||
```bash
|
||
# 一键启动所有服务
|
||
/opt/fundplatform/deploy/start-all.sh
|
||
|
||
# 一键停止所有服务
|
||
/opt/fundplatform/deploy/stop-all.sh
|
||
|
||
# 一键重启所有服务
|
||
/opt/fundplatform/deploy/restart-all.sh
|
||
|
||
# 查看所有服务状态
|
||
/opt/fundplatform/deploy/status.sh
|
||
```
|
||
|
||
## 五、部署操作指南
|
||
|
||
### 5.1 首次部署
|
||
|
||
```bash
|
||
# 1. 创建目录
|
||
mkdir -p /opt/fundplatform/deploy
|
||
mkdir -p /datacfs/applogs
|
||
|
||
# 2. 上传部署包
|
||
# 将deploy目录上传到/opt/fundplatform/
|
||
|
||
# 3. 赋予执行权限
|
||
chmod +x /opt/fundplatform/deploy/*/start.sh
|
||
chmod +x /opt/fundplatform/deploy/*/stop.sh
|
||
chmod +x /opt/fundplatform/deploy/*/restart.sh
|
||
chmod +x /opt/fundplatform/deploy/*.sh
|
||
|
||
# 4. 修改配置文件
|
||
# 编辑各服务的application.yml,配置数据库、Redis、Nacos地址
|
||
|
||
# 5. 启动所有服务
|
||
/opt/fundplatform/deploy/start-all.sh
|
||
|
||
# 6. 检查服务状态
|
||
/opt/fundplatform/deploy/status.sh
|
||
```
|
||
|
||
### 5.2 服务管理
|
||
|
||
```bash
|
||
# 启动单个服务
|
||
/opt/fundplatform/deploy/fund-sys/start.sh
|
||
|
||
# 停止单个服务
|
||
/opt/fundplatform/deploy/fund-sys/stop.sh
|
||
|
||
# 重启单个服务
|
||
/opt/fundplatform/deploy/fund-sys/restart.sh
|
||
|
||
# 一键启动所有服务
|
||
/opt/fundplatform/deploy/start-all.sh
|
||
|
||
# 一键停止所有服务
|
||
/opt/fundplatform/deploy/stop-all.sh
|
||
|
||
# 一键重启所有服务
|
||
/opt/fundplatform/deploy/restart-all.sh
|
||
|
||
# 查看服务状态
|
||
/opt/fundplatform/deploy/status.sh
|
||
```
|
||
|
||
### 5.3 日志查看
|
||
|
||
```bash
|
||
# 查看实时日志
|
||
tail -f /datacfs/applogs/fund-sys/info.log
|
||
|
||
# 查看错误日志
|
||
tail -f /datacfs/applogs/fund-sys/error.log
|
||
|
||
# 查看API请求日志
|
||
tail -f /datacfs/applogs/fund-sys/aop.log
|
||
|
||
# 查看所有服务日志
|
||
tail -f /datacfs/applogs/*/info.log
|
||
```
|
||
|
||
### 5.4 服务更新
|
||
|
||
```bash
|
||
# 1. 备份旧版本
|
||
cp /opt/fundplatform/deploy/fund-sys/fund-sys.jar /opt/fundplatform/deploy/fund-sys/fund-sys.jar.bak
|
||
|
||
# 2. 上传新版本JAR包
|
||
scp fund-sys.jar user@server:/opt/fundplatform/deploy/fund-sys/
|
||
|
||
# 3. 重启服务
|
||
/opt/fundplatform/deploy/fund-sys/restart.sh
|
||
|
||
# 4. 检查服务状态
|
||
/opt/fundplatform/deploy/status.sh
|
||
tail -f /datacfs/applogs/fund-sys/info.log
|
||
```
|
||
|
||
---
|
||
|
||
## 六、常见问题处理
|
||
|
||
### 6.1 服务无法启动
|
||
|
||
```bash
|
||
# 检查端口占用
|
||
netstat -tlnp | grep 8100
|
||
|
||
# 检查Java进程
|
||
ps -ef | grep fund-sys
|
||
|
||
# 查看启动日志
|
||
tail -100 /datacfs/applogs/fund-sys/info.log
|
||
|
||
# 检查配置文件
|
||
cat /opt/fundplatform/deploy/fund-sys/application.yml
|
||
```
|
||
|
||
### 6.2 服务注册失败
|
||
|
||
```bash
|
||
# 检查Nacos是否运行
|
||
curl http://localhost:8848/nacos/v1/console/health/readiness
|
||
|
||
# 检查服务注册状态
|
||
curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=fund-sys&namespaceId=fund-platform
|
||
|
||
# 检查Nacos命名空间
|
||
curl http://localhost:8848/nacos/v1/console/namespaces
|
||
```
|
||
|
||
### 6.3 数据库连接失败
|
||
|
||
```bash
|
||
# 检查MySQL是否运行
|
||
systemctl status mysql
|
||
|
||
# 测试数据库连接
|
||
mysql -h localhost -u fund_user -p'Fund@123456' -e "SELECT 1"
|
||
|
||
# 检查数据库是否存在
|
||
mysql -u root -p'zjf@123456' -e "SHOW DATABASES LIKE 'fund_%'"
|
||
```
|
||
|
||
### 6.4 Redis连接失败
|
||
|
||
```bash
|
||
# 检查Redis是否运行
|
||
systemctl status redis
|
||
|
||
# 测试Redis连接
|
||
redis-cli -a 'zjf@123456' ping
|
||
```
|
||
|
||
---
|
||
|
||
## 七、附录
|
||
|
||
### 7.1 配置文件说明
|
||
|
||
#### 7.1.1 配置文件架构
|
||
|
||
项目采用**统一配置 + 个性化配置**分离架构:
|
||
|
||
| 配置文件 | 位置 | 用途 |
|
||
|----------|------|------|
|
||
| `env.properties` | scripts/ | 统一配置(所有服务共用) |
|
||
| `service.properties` | 各服务 src/main/resources/ | 个性化配置(每服务独立) |
|
||
|
||
**加载顺序**: 先加载 `env.properties`,后加载 `service.properties`(个性化覆盖统一)
|
||
|
||
#### 7.1.2 统一配置 (env.properties)
|
||
|
||
```properties
|
||
# /opt/fundplatform/deploy/fund-sys/conf/env.properties
|
||
|
||
# Nacos配置
|
||
NACOS_SERVER_ADDR=localhost:8848
|
||
NACOS_NAMESPACE=fund-platform
|
||
NACOS_GROUP=DEFAULT_GROUP
|
||
NACOS_USERNAME=nacos
|
||
NACOS_PASSWORD=nacos
|
||
|
||
# Redis配置
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=zjf@123456
|
||
REDIS_DATABASE=0
|
||
|
||
# 日志配置
|
||
LOG_PATH=/datacfs/applogs
|
||
LOG_LEVEL_ROOT=INFO
|
||
LOG_LEVEL_APP=DEBUG
|
||
|
||
# 多租户路由配置
|
||
TENANT_ROUTING_ENABLED=true
|
||
DEFAULT_TENANT_ID=1
|
||
```
|
||
|
||
#### 7.1.3 个性化配置 (service.properties)
|
||
|
||
```properties
|
||
# /opt/fundplatform/deploy/fund-sys/conf/service.properties
|
||
|
||
# 服务名称
|
||
APP_NAME=fund-sys
|
||
|
||
# 实例名称(多租户场景)
|
||
INSTANCE_NAME=fund-sys
|
||
|
||
# 租户标识(空值=共享实例,有值=VIP实例)
|
||
TENANT_ID=
|
||
```
|
||
|
||
### 7.2 多租户部署示例
|
||
|
||
#### 共享实例
|
||
```properties
|
||
# service.properties
|
||
APP_NAME=fund-sys
|
||
INSTANCE_NAME=fund-sys
|
||
TENANT_ID=
|
||
```
|
||
|
||
#### VIP专属实例
|
||
```properties
|
||
# service.properties
|
||
APP_NAME=fund-sys
|
||
INSTANCE_NAME=fund-sys-vip001
|
||
TENANT_ID=vip001
|
||
```
|
||
|
||
### 7.3 环境变量配置(旧版兼容)
|
||
|
||
```bash
|
||
# /opt/fundplatform/config/env.properties
|
||
|
||
# MySQL配置
|
||
MYSQL_HOST=localhost
|
||
MYSQL_PORT=3306
|
||
MYSQL_USERNAME=fund_user
|
||
MYSQL_PASSWORD=Fund@123456
|
||
|
||
# Redis配置
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=zjf@123456
|
||
|
||
# Nacos配置
|
||
NACOS_HOST=localhost
|
||
NACOS_PORT=8848
|
||
NACOS_NAMESPACE=fund-platform
|
||
NACOS_USERNAME=nacos
|
||
NACOS_PASSWORD=nacos
|
||
```
|
||
|
||
### 7.2 端口清单
|
||
|
||
| 服务 | 端口 | 协议 |
|
||
|------|------|------|
|
||
| MySQL | 3306 | TCP |
|
||
| Redis | 6379 | TCP |
|
||
| Nacos API | 8848 | HTTP |
|
||
| Nacos 控制台 | 8048 | HTTP |
|
||
| fund-gateway | 8000 | HTTP |
|
||
| fund-sys | 8100 | HTTP |
|
||
| fund-cust | 8200 | HTTP |
|
||
| fund-proj | 8300 | HTTP |
|
||
| fund-req | 8400 | HTTP |
|
||
| fund-exp | 8500 | HTTP |
|
||
| fund-receipt | 8600 | HTTP |
|
||
| fund-report | 8700 | HTTP |
|
||
| fund-file | 8800 | HTTP |
|
||
|
||
### 7.3 访问地址
|
||
|
||
| 服务 | 地址 |
|
||
|------|------|
|
||
| API网关 | http://服务器IP:8000 |
|
||
| Nacos控制台 | http://服务器IP:8848/nacos |
|
||
| 管理后台 | http://服务器IP:80 |
|
||
|
||
### 7.4 默认账号
|
||
|
||
| 系统 | 用户名 | 密码 |
|
||
|------|--------|------|
|
||
| Nacos | nacos | nacos |
|
||
| 管理后台 | admin | 123456 |
|
||
|
||
---
|
||
|
||
**文档结束**
|