From 7d0949ffbe8684363778242af86f59e245fa7561 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 13 Jan 2026 14:15:59 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E9=83=A8=E7=BD=B2=E5=92=8C=20Nacos=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=AE=8C=E6=95=B4=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 详细的 .env 文件配置步骤 - Nacos 配置中心使用指南 - 为所有 5 个核心服务提供配置模板 - 包含常见问题和故障排查 --- docs/server-deployment-guide.md | 462 ++++++++++++++++++++++++++++++++ 1 file changed, 462 insertions(+) create mode 100644 docs/server-deployment-guide.md diff --git a/docs/server-deployment-guide.md b/docs/server-deployment-guide.md new file mode 100644 index 0000000..07c928a --- /dev/null +++ b/docs/server-deployment-guide.md @@ -0,0 +1,462 @@ +# 服务器部署操作指南 + +本文档提供服务器环境配置和 Nacos 配置的详细步骤。 + +## 第一步:服务器环境配置 + +### 1. SSH 登录服务器 + +```bash +ssh root@124.221.55.225 +``` + +### 2. 创建项目目录 + +```bash +# 创建项目目录 +mkdir -p /opt/aiot-platform-cloud +cd /opt/aiot-platform-cloud +``` + +### 3. 下载配置文件 + +```bash +# 下载 docker-compose 配置 +wget http://172.17.16.14:3000/XW-AIOT/aiot-platform-cloud/raw/branch/master/docker-compose.core.yml + +# 下载环境变量模板 +wget http://172.17.16.14:3000/XW-AIOT/aiot-platform-cloud/raw/branch/master/.env.example + +# 或者使用 git clone(推荐) +git clone http://172.17.16.14:3000/XW-AIOT/aiot-platform-cloud.git . +``` + +### 4. 创建并编辑 .env 文件 + +```bash +# 复制模板 +cp .env.example .env + +# 编辑配置 +vi .env +``` + +### 5. 必须修改的配置项 + +在 `.env` 文件中,按 `i` 进入编辑模式,修改以下内容: + +```bash +# ============ 数据库配置 ============ +# 从 1Panel 获取 MySQL 密码 +MYSQL_HOST=127.0.0.1 +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=你的1Panel_MySQL_root密码 # ← 修改这里 +MYSQL_DATABASE=aiot_platform +MYSQL_USER=aiot +MYSQL_PASSWORD=你的aiot用户密码 # ← 修改这里 + +# ============ Redis 配置 ============ +# 从 1Panel 获取 Redis 密码 +REDIS_HOST=127.0.0.1 +REDIS_PORT=6379 +REDIS_PASSWORD=你的1Panel_Redis密码 # ← 修改这里 +REDIS_DATABASE=0 + +# ============ Nacos 配置 ============ +# 从 1Panel 获取 Nacos 配置 +NACOS_HOST=127.0.0.1 +NACOS_PORT=8848 +NACOS_NAMESPACE= # 留空使用 public 命名空间,或填写 aiot-platform +NACOS_USERNAME=nacos +NACOS_PASSWORD=你的1Panel_Nacos密码 # ← 修改这里 + +# ============ RocketMQ 配置 ============ +ROCKETMQ_NAMESRV_HOST=127.0.0.1 +ROCKETMQ_NAMESRV_PORT=9876 + +# ============ IoT Gateway 特有配置 ============ +# 生产环境必须修改为强密钥(至少32位) +IOT_TOKEN_SECRET=你的强密钥_至少32位字符 # ← 修改这里 +``` + +**保存并退出**: +- 按 `Esc` 退出编辑模式 +- 输入 `:wq` 保存并退出 + +### 6. 验证配置 + +```bash +# 查看配置(隐藏密码) +cat .env | grep -v PASSWORD | grep -v SECRET + +# 测试 MySQL 连接 +mysql -h 127.0.0.1 -P 3306 -u aiot -p +# 输入密码后,如果能连接成功,说明配置正确 + +# 测试 Redis 连接 +redis-cli -h 127.0.0.1 -p 6379 -a 你的Redis密码 PING +# 应该返回 PONG + +# 测试 Nacos 连接 +curl http://127.0.0.1:8848/nacos/v1/console/health/readiness +# 应该返回 UP +``` + +### 7. 如何获取 1Panel 中间件密码 + +#### 获取 MySQL 密码 + +```bash +# 在 1Panel 面板中 +1. 进入"数据库" → "MySQL" +2. 找到 root 用户,点击"查看密码" +3. 复制密码到 .env 文件 +``` + +#### 获取 Redis 密码 + +```bash +# 在 1Panel 面板中 +1. 进入"应用商店" → "已安装" +2. 找到 Redis,点击"设置" +3. 查看"requirepass"配置 +4. 复制密码到 .env 文件 +``` + +#### 获取 Nacos 密码 + +```bash +# 在 1Panel 面板中 +1. 进入"应用商店" → "已安装" +2. 找到 Nacos,点击"设置" +3. 查看环境变量中的密码 +4. 复制密码到 .env 文件 +``` + +--- + +## 第二步:Nacos 配置管理 + +### 1. 访问 Nacos 控制台 + +``` +URL: http://124.221.55.225:8848/nacos +用户名: nacos +密码: 你的Nacos密码 +``` + +### 2. 创建命名空间(可选) + +**推荐创建独立的命名空间用于生产环境** + +1. 点击左侧菜单"命名空间" +2. 点击右上角"新建命名空间" +3. 填写信息: + - **命名空间名**: `aiot-platform` + - **命名空间ID**: `aiot-platform`(自动生成) + - **描述**: `AIOT 平台生产环境` +4. 点击"确定" + +### 3. 为每个服务创建配置 + +#### 配置 1: system-server + +**Data ID**: `system-server-prod.yaml` +**Group**: `DEFAULT_GROUP` +**配置格式**: `YAML` +**配置内容**: + +```yaml +# 系统服务配置 +spring: + datasource: + dynamic: + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: aiot + password: 你的MySQL密码 # ← 在这里填写实际密码 + + data: + redis: + host: 127.0.0.1 + port: 6379 + password: 你的Redis密码 # ← 在这里填写实际密码 + database: 0 + +# 日志级别(可动态调整) +logging: + level: + com.viewsh.module.system: INFO +``` + +#### 配置 2: infra-server + +**Data ID**: `infra-server-prod.yaml` +**Group**: `DEFAULT_GROUP` +**配置格式**: `YAML` +**配置内容**: + +```yaml +# 基础设施服务配置 +spring: + datasource: + dynamic: + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: aiot + password: 你的MySQL密码 + + data: + redis: + host: 127.0.0.1 + port: 6379 + password: 你的Redis密码 + database: 0 + +logging: + level: + com.viewsh.module.infra: INFO +``` + +#### 配置 3: iot-server + +**Data ID**: `iot-server-prod.yaml` +**Group**: `DEFAULT_GROUP` +**配置格式**: `YAML` +**配置内容**: + +```yaml +# IoT 业务服务配置 +spring: + datasource: + dynamic: + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: aiot + password: 你的MySQL密码 + + data: + redis: + host: 127.0.0.1 + port: 6379 + password: 你的Redis密码 + database: 0 + +rocketmq: + name-server: 127.0.0.1:9876 + +viewsh: + iot: + message-bus: + type: redis + +logging: + level: + com.viewsh.module.iot: INFO +``` + +#### 配置 4: iot-gateway-server + +**Data ID**: `iot-gateway-server-prod.yaml` +**Group**: `DEFAULT_GROUP` +**配置格式**: `YAML` +**配置内容**: + +```yaml +# IoT 设备网关配置 +spring: + data: + redis: + host: 127.0.0.1 + port: 6379 + password: 你的Redis密码 + database: 0 + +rocketmq: + name-server: 127.0.0.1:9876 + +viewsh: + iot: + message-bus: + type: redis + + gateway: + # 设备 RPC 配置 + rpc: + url: http://127.0.0.1:48091 + connect-timeout: 30s + read-timeout: 30s + + # 设备 Token 配置 + token: + secret: 你的强密钥_至少32位字符 # ← 生产环境必须修改 + expiration: 7d + + # 协议配置(可动态调整) + protocol: + http: + enabled: true + server-port: 8092 + + mqtt: + enabled: true + port: 1883 + max-message-size: 8192 + connect-timeout-seconds: 60 + ssl-enabled: false + + tcp: + enabled: false + port: 8091 + + emqx: + enabled: false + +logging: + level: + com.viewsh.module.iot.gateway: INFO + com.viewsh.module.iot.gateway.protocol.mqtt: INFO +``` + +#### 配置 5: gateway-server + +**Data ID**: `gateway-server-prod.yaml` +**Group**: `DEFAULT_GROUP` +**配置格式**: `YAML` +**配置内容**: + +```yaml +# API 网关配置 +spring: + data: + redis: + host: 127.0.0.1 + port: 6379 + password: 你的Redis密码 + database: 0 + +logging: + level: + com.viewsh.gateway: INFO +``` + +### 4. 发布配置 + +每个配置创建完成后: +1. 点击"发布"按钮 +2. 确认配置内容 +3. 点击"确定" + +### 5. 验证配置 + +在"配置列表"中可以看到所有已发布的配置: +- `system-server-prod.yaml` +- `infra-server-prod.yaml` +- `iot-server-prod.yaml` +- `iot-gateway-server-prod.yaml` +- `gateway-server-prod.yaml` + +--- + +## 第三步:部署服务 + +### 1. 确认配置完成 + +```bash +# 检查 .env 文件 +cat .env | grep -E "MYSQL_PASSWORD|REDIS_PASSWORD|NACOS_PASSWORD|IOT_TOKEN_SECRET" + +# 确保所有密码都已填写,不是默认值 +``` + +### 2. 在 Jenkins 中触发构建 + +1. 访问 Jenkins: `http://124.221.55.225:5050/` +2. 进入项目: `aiot-platform-cloud` → `master` +3. 点击"立即构建"(Build Now) + +### 3. 监控部署进度 + +在 Jenkins 中查看构建日志: +- ✅ Checkout 代码 +- ✅ 检测变更 +- ✅ 构建 Docker 镜像 +- ✅ 推送到 Registry +- ✅ 部署服务 + +### 4. 验证服务状态 + +```bash +# 查看运行中的容器 +docker ps + +# 查看服务日志 +docker logs -f aiot-system-server +docker logs -f aiot-iot-gateway + +# 检查健康状态 +curl http://127.0.0.1:48081/actuator/health # system-server +curl http://127.0.0.1:48091/actuator/health # iot-server +curl http://127.0.0.1:48084/actuator/health # iot-gateway +``` + +--- + +## 常见问题 + +### Q1: 如何修改 Nacos 中的配置? + +1. 登录 Nacos 控制台 +2. 找到对应的配置文件 +3. 点击"编辑" +4. 修改配置 +5. 点击"发布" +6. **配置立即生效,无需重启服务!** + +### Q2: 如何查看服务是否连接到 Nacos? + +```bash +# 查看服务日志 +docker logs aiot-system-server | grep nacos + +# 应该看到类似输出: +# Nacos config center started successfully +``` + +### Q3: 如果 Nacos 配置错误怎么办? + +1. 在 Nacos 控制台点击"历史版本" +2. 选择之前的版本 +3. 点击"回滚" +4. 配置立即恢复 + +### Q4: 如何生成强密钥? + +```bash +# 生成 32 位随机密钥 +openssl rand -base64 32 + +# 或者使用在线工具 +# https://www.random.org/strings/ +``` + +--- + +## 配置优先级说明 + +``` +Nacos 配置 > .env 环境变量 > application-prod.yaml 默认值 +``` + +**推荐做法**: +- **基础设施配置**(MySQL、Redis 地址)→ `.env` 文件 +- **业务配置**(功能开关、日志级别)→ Nacos 配置中心 +- **默认值** → `application-prod.yaml` + +这样可以: +- ✅ 基础配置稳定(在 .env 中) +- ✅ 业务配置灵活(在 Nacos 中动态调整) +- ✅ 有默认值兜底(在 application-prod.yaml 中)