Files
hzdyjs/docs/部署文档/生产环境双机部署方案.md
2025-11-27 00:02:01 +08:00

25 KiB
Raw Permalink Blame History

生产环境双机部署方案

📋 方案概述

现状

  • 机器1: 172.16.0.67(已完整部署)
  • 机器2: 172.16.0.68(待部署)
  • 应用栈: 移动端前端、Web前端、后端服务、Nginx、Redis、MySQL、MinIO

设计目标

  1. 高可用性: 单机故障不影响服务可用性
  2. 负载均衡: 合理分配两台机器的负载
  3. 数据一致性: 确保数据同步和一致性
  4. 可扩展性: 支持后续扩展和升级
  5. 运维便利: 便于监控、维护和故障排查

🏗️ 架构设计方案

方案一:主备模式(推荐用于初期)

┌─────────────────────────────────────────────────────────┐
│                     用户请求                              │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
            ┌──────────────────────┐
            │    Nginx (67/68)     │
            │    负载均衡/主备      │
            └──────────┬───────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ▼              ▼              ▼
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  后端服务   │  │  后端服务   │  │  后端服务   │
│  67:8080    │  │  67:8081    │  │  68:8080    │
└─────────────┘  └─────────────┘  └─────────────┘
        │              │              │
        └──────────────┼──────────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ▼              ▼              ▼
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│   MySQL     │  │   Redis     │  │   MinIO     │
│  67(主)     │  │  67(主)     │  │  67(主)     │
│  68(从)     │  │  68(从)     │  │  68(从)     │
└─────────────┘  └─────────────┘  └─────────────┘

方案二:双活模式(推荐用于高负载场景)

┌─────────────────────────────────────────────────────────┐
│                     用户请求                              │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
            ┌──────────────────────┐
            │    Nginx (67/68)     │
            │    双机负载均衡      │
            └──────────┬───────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ▼              ▼              ▼
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  后端服务   │  │  后端服务   │  │  后端服务   │
│  67:8080    │  │  67:8081    │  │  68:8080    │
└─────────────┘  └─────────────┘  └─────────────┘
        │              │              │
        └──────────────┼──────────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ▼              ▼              ▼
┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│   MySQL     │  │   Redis     │  │   MinIO     │
│  67(主)     │  │  67(主)     │  │  67+68集群  │
│  68(从)     │  │  68(从)     │  │             │
└─────────────┘  └─────────────┘  └─────────────┘

📊 资源分配方案

机器1 (172.16.0.67) - 主节点

服务 端口 说明
前端服务
Web前端 80 Nginx静态资源
移动端前端 80 Nginx静态资源
后端服务
后端实例1 8080 主服务实例
后端实例2 8081 备用实例(可选)
中间件
MySQL 3306 主库
Redis 6379 主节点
MinIO 9000/9001 主节点
负载均衡
Nginx 80/443 主负载均衡器

机器2 (172.16.0.68) - 备节点/负载节点

服务 端口 说明
前端服务
Web前端 80 Nginx静态资源(同步)
移动端前端 80 Nginx静态资源(同步)
后端服务
后端实例1 8080 负载均衡实例
后端实例2 8081 负载均衡实例(可选)
中间件
MySQL 3306 从库(主从复制)
Redis 6379 从节点(主从复制)
MinIO 9000/9001 从节点/集群节点
负载均衡
Nginx 80/443 备用负载均衡器

🔧 详细部署配置

1. MySQL主从复制配置

1.1 主库配置(67)

# /etc/mysql/my.cnf
[mysqld]
# 基础主从配置
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
binlog-do-db = hzdyjs_xg
expire_logs_days = 7
max_binlog_size = 500M

# 性能优化配置(减少主从复制对主库性能影响)
# 方案A:性能优先(推荐,性能影响约1-2%)
sync_binlog = 0              # 由操作系统控制刷盘,性能最优
binlog_cache_size = 2M       # 增大binlog缓存
max_binlog_cache_size = 512M

# 方案B:平衡方案(性能影响约2-3%)
# sync_binlog = 100          # 每100个事务刷盘一次
# binlog_cache_size = 2M

# 方案C:安全优先(性能影响约4-6%)
# sync_binlog = 1            # 每次事务都刷盘,最安全但性能下降
# binlog_cache_size = 1M

💡 性能影响说明:MySQL主从复制对主库性能影响通常为1-5%,具体取决于配置和负载。详细分析请参考:MySQL主从复制性能影响分析.md

1.2 从库配置(68)

# /etc/mysql/my.cnf
[mysqld]
server-id = 2
relay-log = mysql-relay-bin
read-only = 1
replicate-do-db = hzdyjs_xg

1.3 从库数据初始化(重要!)

⚠️ 关键步骤:在配置主从复制之前,必须先初始化从库数据,确保从库有和主库一致的数据。

方法一:使用自动化脚本(推荐)

# 步骤1:在主库(67)执行数据导出
cd 部署脚本/
chmod +x init-mysql-slave-data.sh
./init-mysql-slave-data.sh

# 步骤2:在从库(68)执行数据导入
# 脚本会自动从主库复制备份文件到从库
./init-mysql-slave-data.sh

方法二:手动执行

# 步骤1:在主库(67)锁定表并导出数据
mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p -e "SET GLOBAL read_only = ON;"
mysqldump -u root -p \
    --single-transaction \
    --routines \
    --triggers \
    --events \
    --master-data=2 \
    hzdyjs_xg > /tmp/hzdyjs_xg_backup.sql
mysql -u root -p -e "UNLOCK TABLES;"
mysql -u root -p -e "SET GLOBAL read_only = OFF;"

# 记录主库binlog位置
mysql -u root -p -e "SHOW MASTER STATUS;" > /tmp/master_status.txt

# 步骤2:复制备份文件到从库
scp /tmp/hzdyjs_xg_backup.sql root@172.16.0.68:/tmp/
scp /tmp/master_status.txt root@172.16.0.68:/tmp/

# 步骤3:在从库(68)导入数据
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS hzdyjs_xg CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
mysql -u root -p hzdyjs_xg < /tmp/hzdyjs_xg_backup.sql

💡 重要提示:

  • 从库必须先有和主库一致的数据,才能配置主从复制
  • 使用--master-data=2参数可以在备份文件中自动包含binlog位置信息
  • 如果从库已有数据,需要先清空或重建数据库
  • ⚠️ 系统数据库说明:系统自带的数据库(information_schema、mysql、performance_schema、sys)不需要复制,原因如下:
    • information_schema:MySQL自动管理的元数据,只读,每个实例独立
    • mysql:系统数据库,包含用户和权限信息,但主从复制配置中已使用binlog-do-db = hzdyjs_xg,只复制业务数据库
    • performance_schema:性能监控数据库,每个实例独立,不需要复制
    • sys:基于performance_schema的视图,每个实例独立,不需要复制
    • 结论:只需要复制业务数据库hzdyjs_xg,系统数据库由MySQL自动管理,保持默认状态即可

1.4 主从复制设置

-- 在主库(67)执行
CREATE USER 'repl'@'172.16.0.68' IDENTIFIED BY 'Repl@123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.0.68';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;

-- 在从库(68)执行(使用主库的binlog位置)
CHANGE MASTER TO
  MASTER_HOST='172.16.0.67',
  MASTER_USER='repl',
  MASTER_PASSWORD='Repl@123456',
  MASTER_LOG_FILE='mysql-bin.000001',  -- 从 SHOW MASTER STATUS 获取
  MASTER_LOG_POS=154;                  -- 从 SHOW MASTER STATUS 获取
START SLAVE;
SHOW SLAVE STATUS\G;

2. Redis主从复制配置

2.1 主节点配置(67)

# /etc/redis/redis.conf
bind 0.0.0.0
port 6379
requirepass Hzdyjs@123456
masterauth Hzdyjs@123456

2.2 从节点配置(68)

# /etc/redis/redis.conf
bind 0.0.0.0
port 6379
requirepass Hzdyjs@123456
replicaof 172.16.0.67 6379
masterauth Hzdyjs@123456

2.3 验证主从复制

# 在主节点写入
redis-cli -a Hzdyjs@123456 set test_key "test_value"

# 在从节点读取
redis-cli -a Hzdyjs@123456 get test_key

3. MinIO集群/主从配置

方案A:MinIO集群模式(推荐)

# docker-compose-minio-cluster.yml
version: '3.8'
services:
  minio1:
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
    container_name: minio1
    command: server --address ":9000" --console-address ":9001" http://minio{1...2}/data
    environment:
      MINIO_ROOT_USER: ruoyi
      MINIO_ROOT_PASSWORD: ruoyi123
    volumes:
      - /docker/minio/data1:/data
    ports:
      - "9000:9000"
      - "9001:9001"
    networks:
      - minio-cluster

  minio2:
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
    container_name: minio2
    command: server --address ":9000" --console-address ":9001" http://minio{1...2}/data
    environment:
      MINIO_ROOT_USER: ruoyi
      MINIO_ROOT_PASSWORD: ruoyi123
    volumes:
      - /docker/minio/data2:/data
    ports:
      - "9002:9000"
      - "9003:9001"
    networks:
      - minio-cluster

networks:
  minio-cluster:
    driver: bridge

方案B:MinIO主从同步(简单方案)

使用 mc mirror 命令定期同步:

# 在68机器上配置定时同步
mc alias set minio67 http://172.16.0.67:9000 ruoyi ruoyi123
mc alias set minio68 http://172.16.0.68:9000 ruoyi ruoyi123

# 定时同步脚本
#!/bin/bash
mc mirror --watch minio67/ruoyi minio68/ruoyi

4. Nginx负载均衡配置

4.1 主负载均衡器(67)

# /etc/nginx/nginx.conf
upstream backend_servers {
    # 机器67的后端实例
    server 127.0.0.1:8080 weight=2 max_fails=3 fail_timeout=30s;
    server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=30s;
    # 机器68的后端实例
    server 172.16.0.68:8080 weight=2 max_fails=3 fail_timeout=30s;
    server 172.16.0.68:8081 weight=1 max_fails=3 fail_timeout=30s;
    
    # 健康检查
    keepalive 32;
}

server {
    listen 80;
    server_name your-domain.com;
    
    # Web前端
    location / {
        root /root/hzdyjsweb9091/dist;
        try_files $uri $uri/ /index.html;
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
    
    # 移动端前端
    location /mobile {
        alias /root/mobile/dist;
        try_files $uri $uri/ /mobile/index.html;
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
    
    # API代理
    location /prod-api/ {
        proxy_pass http://backend_servers/;
        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;
        
        # 超时设置
        proxy_connect_timeout 30s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;
    }
}

4.2 备用负载均衡器(68)

配置与67相同,作为备用。可通过Keepalived实现VIP自动切换。

5. Keepalived高可用配置(可选)

5.1 安装Keepalived

# CentOS/RHEL
yum install -y keepalived

# Ubuntu/Debian
apt-get install -y keepalived

5.2 主节点配置(67)

# /etc/keepalived/keepalived.conf
global_defs {
    router_id nginx_master
}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -2
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass KeepAlive@123
    }
    virtual_ipaddress {
        172.16.0.100/24
    }
    track_script {
        chk_nginx
    }
}

5.3 备节点配置(68)

# /etc/keepalived/keepalived.conf
global_defs {
    router_id nginx_backup
}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -2
    fall 3
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass KeepAlive@123
    }
    virtual_ipaddress {
        172.16.0.100/24
    }
    track_script {
        chk_nginx
    }
}

5.4 Nginx健康检查脚本

#!/bin/bash
# /etc/keepalived/check_nginx.sh
if ! pgrep -x nginx > /dev/null; then
    systemctl start nginx
    sleep 2
    if ! pgrep -x nginx > /dev/null; then
        exit 1
    fi
fi
exit 0

🚀 部署步骤

阶段一:机器2基础环境搭建

# 1. 安装基础软件
yum install -y nginx mysql redis docker docker-compose

# 2. 创建目录结构
mkdir -p /root/hzdyjsweb9091/dist
mkdir -p /root/mobile/dist
mkdir -p /docker/{mysql,redis,minio}/{data,config,logs}

# 3. 配置防火墙
firewall-cmd --permanent --add-port={80,443,8080,8081,3306,6379,9000,9001}/tcp
firewall-cmd --reload

阶段二:数据库主从配置

⚠️ 重要:必须先初始化从库数据,再配置主从复制!

# 步骤1:从库数据初始化(在主库67执行)
cd 部署脚本/
chmod +x init-mysql-slave-data.sh
./init-mysql-slave-data.sh

# 步骤2:从库数据导入(在从库68执行)
./init-mysql-slave-data.sh

# 步骤3:配置主从复制(在主库67执行)
chmod +x setup-mysql-replication.sh
./setup-mysql-replication.sh

# 步骤4:配置从库复制(在从库68执行)
./setup-mysql-replication.sh
# 输入主库的 MASTER_LOG_FILE 和 MASTER_LOG_POS(从步骤1的输出获取)

阶段三:Redis主从配置

# 1. 在67机器导出Redis数据(如需要)
redis-cli -a Hzdyjs@123456 --rdb /tmp/redis_backup.rdb

# 2. 在68机器配置Redis从节点(参考上述配置)

阶段四:MinIO配置

# 方案A:MinIO集群
docker-compose -f docker-compose-minio-cluster.yml up -d

# 方案B:MinIO主从同步
# 配置定时同步脚本

阶段五:后端服务部署

# 1. 复制JAR包到68机器
scp ruoyi-admin.jar root@172.16.0.68:/root/

# 2. 修改配置文件
# application-prod.yml 中修改数据库和Redis地址

# 3. 启动服务
java -jar -Dspring.profiles.active=prod ruoyi-admin.jar --server.port=8080

阶段六:前端部署

# 1. 构建前端
cd web && npm run build:prod
cd ../mobile && npm run build:prod

# 2. 同步到68机器
rsync -avz web/dist/ root@172.16.0.68:/root/hzdyjsweb9091/dist/
rsync -avz mobile/dist/ root@172.16.0.68:/root/mobile/dist/

阶段七:Nginx配置

# 1. 复制Nginx配置到68机器
scp nginx.conf root@172.16.0.68:/etc/nginx/nginx.conf

# 2. 测试配置
nginx -t

# 3. 启动Nginx
systemctl start nginx
systemctl enable nginx

⚡ 性能优化

1. MySQL主从复制性能优化

1.1 性能影响分析

核心结论:MySQL主从复制对主库性能的影响通常很小,约在 1-5% 之间。

场景 性能影响 说明
低负载场景 1-2% 写入量小,影响可忽略
中等负载场景 2-4% 正常业务负载,影响轻微
高负载场景 4-8% 大量写入操作,影响稍明显

详细分析文档:📄 MySQL主从复制性能影响分析.md

1.2 优化配置方案

推荐配置(性能优先):

# /etc/my.cnf 主库配置
[mysqld]
# 性能优化配置
sync_binlog = 0              # 由操作系统控制刷盘,性能最优(性能影响约1-2%)
binlog_cache_size = 2M       # 增大binlog缓存
max_binlog_cache_size = 512M
max_binlog_size = 500M       # 增大binlog文件大小

性能提升:

  • 使用sync_binlog=0可提升约3-5%
  • 增大binlog缓存可减少磁盘I/O
  • 使用SSD存储binlog可提升50-80%

1.3 性能监控

-- 查看binlog写入性能
SHOW STATUS LIKE 'Binlog_cache%';

-- 查看主从复制延迟
SHOW SLAVE STATUS\G
-- 关注:Seconds_Behind_Master(应 < 1秒)

-- 查看binlog文件大小
SHOW BINARY LOGS;

2. Redis主从复制性能优化

2.1 性能影响分析

Redis主从复制对主节点性能影响极小(< 1%),因为:

  • Redis主从复制是异步的
  • 主节点只需要将命令发送给从节点
  • 网络传输开销很小

2.2 优化配置

# /etc/redis/redis.conf 主节点配置
# 优化网络传输
tcp-backlog = 511
tcp-keepalive = 300

# 优化内存
maxmemory-policy = allkeys-lru

3. Nginx负载均衡性能优化

3.1 连接池优化

# nginx.conf
upstream backend_servers {
    # 使用keepalive连接池
    keepalive 32;
    keepalive_requests 100;
    keepalive_timeout 60s;
    
    # 负载均衡算法
    least_conn;  # 最少连接数(推荐)
    # ip_hash;    # IP哈希(会话保持)
    # fair;       # 响应时间(需要第三方模块)
}

3.2 缓存优化

# 静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
    access_log off;
}

# API响应缓存(可选)
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api_cache:10m max_size=1g inactive=60m;

4. 系统资源优化

4.1 内核参数优化

# /etc/sysctl.conf
# 网络优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

# 内存优化
vm.swappiness = 10
vm.overcommit_memory = 1

# 应用配置
sysctl -p

4.2 文件描述符优化

# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

5. 数据库查询优化

5.1 读写分离

# application-prod.yml
spring:
  datasource:
    dynamic:
      primary: master
      strict: false
      datasource:
        master:
          url: jdbc:mysql://172.16.0.67:3306/hzdyjs_xg
          # 写操作使用主库
        slave:
          url: jdbc:mysql://172.16.0.68:3306/hzdyjs_xg
          # 读操作使用从库

性能提升:

  • 读操作分流到从库,减轻主库压力
  • 主库专注于写操作,性能提升约20-30%

5.2 连接池优化

# application-prod.yml
spring:
  datasource:
    druid:
      initial-size: 10
      min-idle: 10
      max-active: 50
      max-wait: 60000
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000

6. 性能测试和基准

6.1 压力测试

# 使用Apache Bench测试
ab -n 10000 -c 100 http://your-domain.com/prod-api/

# 使用wrk测试
wrk -t4 -c100 -d30s http://your-domain.com/prod-api/

6.2 性能基准

指标 目标值 说明
API响应时间 < 200ms 95%请求
数据库查询时间 < 50ms 平均查询时间
主从复制延迟 < 1s Seconds_Behind_Master
CPU使用率 < 70% 正常负载
内存使用率 < 80% 正常负载

📈 监控和运维

1. 健康检查脚本

#!/bin/bash
# health_check.sh

# 检查MySQL主从状态
mysql -u root -p -e "SHOW SLAVE STATUS\G" | grep -i "slave_io_running\|slave_sql_running"

# 检查Redis主从状态
redis-cli -a Hzdyjs@123456 INFO replication

# 检查后端服务
curl -f http://127.0.0.1:8080/health || echo "Backend service down"

# 检查Nginx
systemctl is-active nginx || echo "Nginx down"

2. 日志收集

# 统一日志目录
/var/log/app/
├── nginx/
│   ├── access.log
│   └── error.log
├── backend/
│   ├── ruoyi-admin-8080.log
│   └── ruoyi-admin-8081.log
└── mysql/
    ├── error.log
    └── slow-query.log

3. 监控指标

  • 系统指标: CPU、内存、磁盘、网络
  • 应用指标: 请求量、响应时间、错误率
  • 数据库指标: 连接数、慢查询、主从延迟
  • Redis指标: 内存使用、命中率、主从状态

🔄 故障转移方案

1. 自动故障检测

#!/bin/bash
# failover_check.sh

# 检查主节点健康状态
if ! curl -f http://172.16.0.67:8080/health; then
    echo "主节点故障,切换到备节点"
    # 执行切换逻辑
    # 1. 更新DNS/负载均衡配置
    # 2. 提升从库为主库
    # 3. 启动备节点服务
fi

2. 手动故障转移流程

  1. 检测故障: 确认主节点不可用
  2. 停止主节点服务: 防止数据冲突
  3. 提升从库: MySQL从库提升为主库
  4. 切换Redis: Redis从节点提升为主节点
  5. 更新配置: 修改应用配置指向新主节点
  6. 启动服务: 在备节点启动所有服务
  7. 验证功能: 验证服务正常

⚠️ 注意事项

1. 数据一致性

  • MySQL主从复制可能存在延迟,关键操作建议在主库执行
  • Redis主从复制为异步,注意数据一致性
  • MinIO集群模式确保数据一致性,主从同步可能存在延迟

2. 网络配置

  • 确保两台机器网络互通
  • 配置防火墙规则允许必要端口
  • 建议使用内网IP通信,提高安全性

3. 资源规划

  • 根据实际负载调整实例数量
  • 监控资源使用情况,及时扩容
  • 预留足够的磁盘空间用于日志和备份

4. 安全配置

  • 修改默认密码
  • 配置SSL证书
  • 限制数据库和Redis的访问IP
  • 定期更新系统和软件

5. 备份策略

  • 数据库: 每日全量备份 + 实时binlog备份
  • 文件存储: MinIO定期同步/备份
  • 配置文件: Git版本控制
  • 应用日志: 定期归档和清理

📋 部署检查清单

部署前检查

  • 两台机器网络互通
  • 防火墙规则配置完成
  • 基础软件安装完成
  • 目录结构创建完成
  • 配置文件准备完成

部署后验证

  • MySQL主从复制正常
  • Redis主从复制正常
  • MinIO集群/同步正常
  • 后端服务启动正常
  • Nginx负载均衡正常
  • 前端访问正常
  • API接口测试通过
  • 健康检查脚本正常
  • 监控告警配置完成

🔧 常用运维命令

MySQL主从管理

# 查看主从状态
mysql -u root -p -e "SHOW SLAVE STATUS\G"

# 停止从库复制
mysql -u root -p -e "STOP SLAVE;"

# 启动从库复制
mysql -u root -p -e "START SLAVE;"

# 重置从库
mysql -u root -p -e "RESET SLAVE;"

Redis主从管理

# 查看主从信息
redis-cli -a Hzdyjs@123456 INFO replication

# 手动切换主从
redis-cli -a Hzdyjs@123456 SLAVEOF NO ONE

服务管理

# 查看后端服务状态
ps aux | grep ruoyi-admin

# 重启后端服务
systemctl restart ruoyi-admin

# 查看Nginx状态
systemctl status nginx

# 重载Nginx配置
nginx -s reload

📞 技术支持

如遇到部署问题,请检查:

  1. 系统日志和应用日志
  2. 网络连通性
  3. 防火墙和安全组设置
  4. 数据库连接状态
  5. 资源使用情况(CPU、内存、磁盘)

📝 文档版本: v1.0
🔄 最后更新: 2025-01-27
👨‍💻 维护人员: 开发团队