feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# 驛ィ鄂イ譁<EFBFBD>。」菫ョ豁」謚・蜻<EFBFBD> - 2025蟷?2譛?4譌?
|
||||
# 部署文档修正报告 - 2025年12月14日
|
||||
|
||||
> **菫ョ豁」萓晄紺<EFBFBD>?* 荳謎ク壽橿譛ッ螳。譟・蜿埼ヲ?
|
||||
> **菫ョ豁」譌カ髣エ<EFBFBD>?* 2025-12-14
|
||||
> **菫ョ豁」闌<EFBFBD>峩<EFBFBD>?* 7荳ェ驛ィ鄂イ譁<EFBDB2>。?
|
||||
> **菫ョ豁」髣ョ鬚假シ?* 8荳ェ蜈ウ髞ョ髣ョ鬚?
|
||||
> **修正依据:** 专业技术审查反馈
|
||||
> **修正时间:** 2025-12-14
|
||||
> **修正范围:** 7个部署文档
|
||||
> **修正问题:** 8个关键问题
|
||||
|
||||
---
|
||||
|
||||
@@ -11,67 +11,67 @@
|
||||
|
||||
### 修正统计
|
||||
|
||||
| 荳・驥咲コァ蛻ォ | 髣ョ鬚俶焚驥<E7849A> | 蟾イ菫ョ豁?| 蠖ア蜩崎激蝗エ |
|
||||
| 严重级别 | 问题数量 | 已修正 | 影响范围 |
|
||||
|---------|---------|--------|---------|
|
||||
| **P0/P1<EFBFBD>郁<EFBFBD>蜻ス<EFBFBD><EFBFBD>** | 3荳?| 笨?3荳?| 蜈ィ驛ィ譛榊苅 |
|
||||
| **P2<EFBFBD>磯㍾隕<EFBFBD>シ<EFBFBD>** | 3荳?| 笨?3荳?| 蜈ィ驛ィ譛榊苅 |
|
||||
| **P3<EFBFBD>域怙菴ウ螳櫁キオ<EFBFBD><EFBFBD>** | 2荳?| 笨?2荳?| 驛ィ蛻<EFBDA8>恪蜉。 |
|
||||
| **諤サ隶。** | 8荳?| 笨?8荳?| - |
|
||||
| **P0/P1(致命)** | 3个 | ✅ 3个 | 全部服务 |
|
||||
| **P2(重要)** | 3个 | ✅ 3个 | 全部服务 |
|
||||
| **P3(最佳实践)** | 2个 | ✅ 2个 | 部分服务 |
|
||||
| **总计** | 8个 | ✅ 8个 | - |
|
||||
|
||||
---
|
||||
|
||||
## 🚨 P0/P1 致命问题修正
|
||||
|
||||
### 1. 箝絶ュ絶ュ絶ュ絶ュ?譛榊苅蜿醍鴫蝨ー蝮荳堺ク閾?
|
||||
### 1. ⭐⭐⭐⭐⭐ 服务发现地址不一致
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
譁<EFBFBD>。」荳ュ菴ソ逕?.sae 蝓溷錐<E6BAB7>亥ヲ<E4BAA5> extraction-service.sae:8000<EFBFBD>?
|
||||
菴<EFBFBD>AE逧К8s譛榊苅蜿醍鴫蝓溷錐譬シ蠑丈ク咲。ョ螳夲シ御シ壼ッシ閾?00%霑樊磁螟ア雍・
|
||||
文档中使用 .sae 域名(如 extraction-service.sae:8000)
|
||||
但SAE的K8s服务发现域名格式不确定,会导致100%连接失败
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
**影响范围:**
|
||||
- `00-部署架构总览.md`
|
||||
- `05-Node.js后端-SAE容器部署指南.md`
|
||||
- `04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md`
|
||||
- `08-驛ィ鄂イ譽譟・貂<EFBFBD><EFBFBD>?md`
|
||||
- `04-Python微服务-SAE容器部署指南.md`
|
||||
- `08-部署检查清单.md`
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
```bash
|
||||
# 笶?髞呵ッッ<EFBDAF>井ソョ豁」蜑搾シ?
|
||||
# ❌ 错误(修正前)
|
||||
EXTRACTION_SERVICE_URL=http://extraction-service.sae:8000
|
||||
|
||||
# 笨?豁」遑ョ<E98191>井ソョ豁」蜷趣シ?
|
||||
# ✅ 正确(修正后)
|
||||
EXTRACTION_SERVICE_URL=http://172.16.x.x:8000
|
||||
# 闔キ蜿匁婿蠑擾シ售AE謗ァ蛻カ蜿?> 蠎皮畑隸ヲ諠<EFBDA6> > 螳樔セ句<EFBDBE>陦ィ > 譟・逵句<E980B5>鄂選P
|
||||
# 获取方式:SAE控制台 > 应用详情 > 实例列表 > 查看内网IP
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 隨?22-529陦?
|
||||
- 笨?`04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` - 隨?86-715陦?
|
||||
- 笨?`08-驛ィ鄂イ譽譟・貂<EFBFBD><EFBFBD>?md` - 隨?48陦後∫ャャ434陦?
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 第522-529行
|
||||
- ✅ `04-Python微服务-SAE容器部署指南.md` - 第686-715行
|
||||
- ✅ `08-部署检查清单.md` - 第348行、第434行
|
||||
|
||||
---
|
||||
|
||||
### 2. 箝絶ュ絶ュ絶ュ絶ュ?譌カ蛹コ荳堺ク閾エ鬟朱<E9AC9F>?
|
||||
### 2. ⭐⭐⭐⭐⭐ 时区不一致风险
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
荳榊酔譛榊苅逧<EFBFBD>慮蛹コ荳堺ク閾エ莨壼ッシ閾エ<EFBFBD>?
|
||||
笶?譌・蠢玲慮髣エ蟇ケ荳堺ク奇シ亥燕遶ッ14:00<30>悟錘遶?6:00<EFBFBD>?
|
||||
笶?pg-boss螳壽慮莉サ蜉。蝨ィ髞呵ッッ譌カ髣エ隗ヲ蜿?
|
||||
笶?逕ィ謌キ逵句芦逧<E88AA6>慮髣エ謌ウ髞呵ッッ
|
||||
不同服务的时区不一致会导致:
|
||||
❌ 日志时间对不上(前端14:00,后端06:00)
|
||||
❌ pg-boss定时任务在错误时间触发
|
||||
❌ 用户看到的时间戳错误
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
- Node.js蜷守ォッ<EFBFBD>夐サ倩ョ、UTC 笶?
|
||||
- Python蠕ョ譛榊苅<EFBFBD>夐サ倩ョ、UTC 笶?
|
||||
**影响范围:**
|
||||
- Node.js后端:默认UTC ❌
|
||||
- Python微服务:默认UTC ❌
|
||||
- 前端Nginx:Asia/Shanghai ✅(已正确)
|
||||
- RDS PostgreSQL<EFBFBD>夐サ倩ョ、UTC 笶?
|
||||
- RDS PostgreSQL:默认UTC ❌
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**Node.js蜷守ォッ Dockerfile<EFBFBD>?*
|
||||
**Node.js后端 Dockerfile:**
|
||||
```dockerfile
|
||||
FROM node:22-alpine
|
||||
RUN apk add --no-cache tzdata
|
||||
@@ -79,7 +79,7 @@ ENV TZ=Asia/Shanghai # ⚠️ 新增
|
||||
# ... 其他配置
|
||||
```
|
||||
|
||||
**Python蠕ョ譛榊<EFBFBD>?Dockerfile<EFBFBD>?*
|
||||
**Python微服务 Dockerfile:**
|
||||
```dockerfile
|
||||
FROM python:3.11-slim
|
||||
RUN apt-get update && apt-get install -y tzdata # ⚠️ 新增
|
||||
@@ -88,127 +88,127 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
# ... 其他配置
|
||||
```
|
||||
|
||||
**RDS PostgreSQL 驟咲スョ<EFBFBD>?*
|
||||
**RDS PostgreSQL 配置:**
|
||||
```sql
|
||||
-- RDS謗ァ蛻カ蜿?> 蜿よ焚隶セ鄂ョ > timezone
|
||||
-- RDS控制台 > 参数设置 > timezone
|
||||
timezone = Asia/Shanghai
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 譁ー蠅<EFBDB0>"譌カ蛹コ扈滉ク驟咲スョ"遶<>闃<EFBFBD>
|
||||
- 笨?`05-Node.js蜷守ォッ-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` - 隨?85-495陦?
|
||||
- 笨?`04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` - 隨?87-410陦?
|
||||
- 笨?`PostgreSQL驛ィ鄂イ遲也払-鞫ク蠎墓冠蜻<E586A0>.md` - 譁ー蠅樒ャ?2譚。譛菴ウ螳櫁キ?
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 譁ー蠅樒ャ?闃?
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 新增"时区统一配置"章节
|
||||
- ✅ `05-Node.js后端-SAE容器部署指南.md` - 第485-495行
|
||||
- ✅ `04-Python微服务-SAE容器部署指南.md` - 第387-410行
|
||||
- ✅ `PostgreSQL部署策略-摸底报告.md` - 新增第12条最佳实践
|
||||
- ✅ `07-关键配置补充说明.md` - 新增第8节
|
||||
|
||||
---
|
||||
|
||||
### 3. 箝絶ュ絶ュ絶ュ絶ュ?螳牙<E89EB3>扈<EFBFBD><E68988>鄂ョ郛コ螟?
|
||||
### 3. ⭐⭐⭐⭐⭐ 安全组配置缺失
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
ECS的Redis (6379)、Weaviate (8080)、Dify API (5000) 端口
|
||||
如果对公网开放,会导致严重安全问题:
|
||||
笶?鮟大ョ「蜿ッ莉・扈戊ソ<E6888A>錘遶ッ逶エ謗・隹<EFBDA5>畑LLM鬚晏コヲ
|
||||
笶?Redis譌<EFBFBD>蟇<EFBFBD><EFBFBD><EFBFBD>シ悟庄閭ス陲ォ貂<EFBFBD>ゥコ謨ー謐?
|
||||
笶?Weaviate逧<EFBFBD>髄驥乗焚謐ョ蜿ッ閭ス陲ォ遯<EFBFBD>叙
|
||||
❌ 黑客可以绕过后端直接调用LLM额度
|
||||
❌ Redis无密码,可能被清空数据
|
||||
❌ Weaviate的向量数据可能被窃取
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
**影响范围:**
|
||||
- `03-Dify-ECS部署完全指南.md`
|
||||
- `00-部署架构总览.md`
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**ECS安全组配置:**
|
||||
```bash
|
||||
# 笨?蜈・譁ケ蜷題ァ<E9A18C><EFBDA7><EFBFBD><EFBFBD>nbound<EFBFBD>?
|
||||
蜈∬ョク 80/TCP 譚・貅撰シ?72.16.0.0/12 # Nginx<EFBFBD><EFBFBD>PC蜀<EFBFBD>ス題ョソ髣ョ<EFBFBD>?
|
||||
# ✅ 入方向规则(Inbound)
|
||||
允许 80/TCP 来源:172.16.0.0/12 # Nginx(VPC内网访问)
|
||||
允许 22/TCP 来源:您的办公室公网IP # SSH管理
|
||||
諡堤サ<EFBFBD> 謇譛? 譚・貅撰シ?.0.0.0/0 # 鮟倩ョ、諡堤サ<EFBFBD>
|
||||
拒绝 所有 来源:0.0.0.0/0 # 默认拒绝
|
||||
|
||||
# 笶?扈晏ッケ遖∵ュ「<EFBDAD>亥ョ牙<EFBDAE>郤「郤ソ<E983A4><EFBDBF>
|
||||
遖∵ュ「 5000/TCP<EFBFBD><EFBFBD>ify API<EFBFBD>牙ッケ蜈ャ鄂大シ謾?
|
||||
遖∵ュ「 8080/TCP<EFBFBD><EFBFBD>eaviate<EFBFBD>牙ッケ蜈ャ鄂大シ謾?
|
||||
遖∵ュ「 6379/TCP<EFBFBD><EFBFBD>edis<EFBFBD>牙ッケ蜈ャ鄂大シ謾?
|
||||
# ❌ 绝对禁止(安全红线)
|
||||
禁止 5000/TCP(Dify API)对公网开放
|
||||
禁止 8080/TCP(Weaviate)对公网开放
|
||||
禁止 6379/TCP(Redis)对公网开放
|
||||
```
|
||||
|
||||
**docker-compose.yaml 遶ッ蜿」扈大ョ夲シ?*
|
||||
**docker-compose.yaml 端口绑定:**
|
||||
```yaml
|
||||
services:
|
||||
redis:
|
||||
ports:
|
||||
- "127.0.0.1:6379:6379" # 笞<EFBFBD><EFBFBD><EFBFBD> 蜿ェ逶大成譛ャ蝨?
|
||||
- "127.0.0.1:6379:6379" # ⚠️ 只监听本地
|
||||
|
||||
weaviate:
|
||||
ports:
|
||||
- "127.0.0.1:8080:8080" # 笞<EFBFBD><EFBFBD><EFBFBD> 蜿ェ逶大成譛ャ蝨?
|
||||
- "127.0.0.1:8080:8080" # ⚠️ 只监听本地
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`03-Dify-ECS驛ィ鄂イ螳悟<EFBFBD>謖<EFBFBD>漉.md` - 隨?69-175陦後∫ャャ451-492陦?
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 譁ー蠅<EFBDB0>"螳牙<E89EB3>扈<EFBFBD><E68988>鄂ョ譛菴ウ螳櫁キ?遶<>闃<EFBFBD>
|
||||
**修正文件:**
|
||||
- ✅ `03-Dify-ECS部署完全指南.md` - 第169-175行、第451-492行
|
||||
- ✅ `00-部署架构总览.md` - 新增"安全组配置最佳实践"章节
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ P2 重要问题修正
|
||||
|
||||
### 4. 箝絶ュ絶ュ絶ュ絶ュ?髟懷ワ諡牙叙遲也払
|
||||
### 4. ⭐⭐⭐⭐⭐ 镜像拉取策略
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
SAE蜿ッ閭ス荳堺シ壽級蜿匁眠髟懷ワ<EFBFBD>井サ」遐∽ク肴峩譁ー逧<EFBFBD>"轣オ蠑ゆコ倶サカ"<22>?
|
||||
蠑蜿題<EFBFBD>ソョ謾ケ莉」遐?竊?譫<>サコ髟懷ワ 竊?謗ィ騾∝芦ACR<43>郁ヲ<E98381>尠v1.0.0<EFBFBD>?
|
||||
竊?SAE驛ィ鄂イ 竊?蜿醍鴫莉」遐∵イ。譖エ譁ー<E8AD81>滂シ滂シ<E6BB82>
|
||||
SAE可能不会拉取新镜像(代码不更新的"灵异事件")
|
||||
开发者修改代码 → 构建镜像 → 推送到ACR(覆盖v1.0.0)
|
||||
→ SAE部署 → 发现代码没更新???
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
- 謇譛唄AE驛ィ鄂イ逧<EFBFBD>恪蜉。<EFBFBD>亥燕遶ッ縲∝錘遶ッ縲 ̄ython<EFBFBD>?
|
||||
**影响范围:**
|
||||
- 所有SAE部署的服务(前端、后端、Python)
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**譁ケ譯<EFBFBD><EFBFBD>壽ッ乗ャ。驛ィ鄂イ菴ソ逕ィ譁ー迚域悽蜿キ<EFBFBD>亥シコ辜域耳闕撰シ?*
|
||||
**方案A:每次部署使用新版本号(强烈推荐)**
|
||||
```bash
|
||||
# 使用语义化版本号
|
||||
v1.0.0 竊?v1.0.1 竊?v1.0.2 ...
|
||||
v1.0.0 → v1.0.1 → v1.0.2 ...
|
||||
|
||||
# 或使用时间戳
|
||||
v20251214-1430 竊?v20251214-1530 ...
|
||||
v20251214-1430 → v20251214-1530 ...
|
||||
```
|
||||
|
||||
**方案B:配置SAE镜像拉取策略(测试环境)**
|
||||
```bash
|
||||
# SAE謗ァ蛻カ蜿?> 蠎皮畑驟咲スョ > 髟懷ワ隶セ鄂ョ
|
||||
# SAE控制台 > 应用配置 > 镜像设置
|
||||
镜像拉取策略:Always
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 譁ー蠅<EFBDB0>"髟懷ワ諡牙叙遲也払"遶<>闃<EFBFBD>
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 譁ー蠅樒ャ?闃?
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 新增"镜像拉取策略"章节
|
||||
- ✅ `07-关键配置补充说明.md` - 新增第9节
|
||||
|
||||
---
|
||||
|
||||
### 5. ⭐⭐⭐⭐ Python服务内存管理
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
Python服务(PyMuPDF/Nougat)内存密集,容易OOM
|
||||
笶?蜊穂クェPDF OCR蜿ッ閭ス蜊<EFBFBD>逕ィ500MB-1GB蜀<EFBFBD>ュ<EFBFBD>
|
||||
笶?SAE鮟倩ョ、2GB蜀<EFBFBD>ュ伜庄閭ス荳榊、<EFBFBD>
|
||||
❌ 单个PDF OCR可能占用500MB-1GB内存
|
||||
❌ SAE默认2GB内存可能不够
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
- `04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md`
|
||||
**影响范围:**
|
||||
- `04-Python微服务-SAE容器部署指南.md`
|
||||
- `00-部署架构总览.md`
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**隗<EFBFBD><EFBFBD>シ蟒コ隶ョ<EFBFBD>?*
|
||||
**规格建议:**
|
||||
| 场景 | CPU | 内存 | Workers | 适用情况 |
|
||||
|------|-----|------|---------|---------|
|
||||
| **蝓コ遑迚?* | 1譬?| 2GB | 2 | 邂蜊姫DF隗」譫<EFBFBD> |
|
||||
| **譬<EFBFBD>㊥迚?* | 2譬?| 4GB | 3 | 蛹<EFBFBD>性OCR<EFBFBD><EFBFBD>ougat<EFBFBD>?|
|
||||
| **蠅槫シコ迚?* | 2譬?| 8GB | 4 | 螟ァ驥衆CR + 鬮伜ケカ蜿?|
|
||||
| **基础版** | 1核 | 2GB | 2 | 简单PDF解析 |
|
||||
| **标准版** | 2核 | 4GB | 3 | 包含OCR(Nougat) |
|
||||
| **增强版** | 2核 | 8GB | 4 | 大量OCR + 高并发 |
|
||||
|
||||
**Dockerfile优化(已应用):**
|
||||
```dockerfile
|
||||
@@ -220,38 +220,38 @@ CMD ["gunicorn", "main:app", \
|
||||
"--max-requests-jitter", "10"] # ⚠️ 随机抖动
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 譁ー蠅<EFBFBD>"Python譛榊苅蜀<EFBFBD>ュ倡ョ。逅<EFBFBD>"遶<>闃<EFBFBD>
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 譁ー蠅樒ャ?0闃?
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 新增"Python服务内存管理"章节
|
||||
- ✅ `07-关键配置补充说明.md` - 新增第10节
|
||||
|
||||
---
|
||||
|
||||
### 6. ⭐⭐⭐⭐ Dify API Key死锁风险
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
Node.js后端启动时,如果强依赖Dify连通性,会导致:
|
||||
隨ャ莠碁亳谿オ驛ィ鄂イ蜷守ォッ 竊?蜷守ォッ蜷ッ蜉ィ螟ア雍・<E99B8D><EFBDA5>ify霑俶イ。驛ィ鄂イ<E98482>?
|
||||
竊?譌<>豕戊ソ帛<EFBDBF>SAE謗ァ蛻カ蜿ー譟・逵区律蠢玲<E8A0A2>譖エ譁ー驟咲スョ
|
||||
第二阶段部署后端 → 后端启动失败(Dify还没部署)
|
||||
→ 无法进入SAE控制台查看日志或更新配置
|
||||
```
|
||||
|
||||
**蠖ア蜩崎激蝗エ<EFBFBD>?*
|
||||
**影响范围:**
|
||||
- `05-Node.js后端-SAE容器部署指南.md`
|
||||
- `00-部署架构总览.md`
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**蜷守ォッ莉」遐∝サコ隶ョ<EFBFBD>?*
|
||||
**后端代码建议:**
|
||||
```typescript
|
||||
// backend/src/common/rag/DifyClient.ts
|
||||
constructor() {
|
||||
const apiKey = process.env.DIFY_API_KEY
|
||||
|
||||
// 笨?蜈ウ髞ョ<E9AB9E>壼星蜉ィ譌カ荳榊コ泌シコ萓晁オ縫ify
|
||||
// ✅ 关键:启动时不应强依赖Dify
|
||||
if (!apiKey || apiKey === 'temp' || apiKey.startsWith('temp_')) {
|
||||
console.warn('⚠️ Dify API Key未配置,PKB模块将不可用')
|
||||
this.enabled = false
|
||||
return // 笞<EFBFBD><EFBFBD><EFBFBD> 荳肴鴨蜃コ髞呵ッッ<EFBDAF>瑚ョゥ蠎皮畑豁」蟶ク蜷ッ蜉?
|
||||
return // ⚠️ 不抛出错误,让应用正常启动
|
||||
}
|
||||
|
||||
this.client = new DifySDK(apiKey)
|
||||
@@ -259,36 +259,36 @@ constructor() {
|
||||
}
|
||||
```
|
||||
|
||||
**驛ィ鄂イ豬∫ィ玖ー<EFBFBD>紛<EFBFBD>?*
|
||||
**部署流程调整:**
|
||||
```
|
||||
第二阶段:部署Node.js后端
|
||||
笏懌楳 DIFY_API_KEY=temp_placeholder_will_update_later # 笞<EFBFBD><EFBFBD><EFBFBD> 荳エ譌カ蛟?
|
||||
笏披楳 蜷守ォッ豁」蟶ク蜷ッ蜉ィ<E89C89><EFBDA8>KB讓。蝮礼ヲ∫畑<E288AB>?
|
||||
├─ DIFY_API_KEY=temp_placeholder_will_update_later # ⚠️ 临时值
|
||||
└─ 后端正常启动(PKB模块禁用)
|
||||
|
||||
第四阶段:部署Dify
|
||||
├─ 生成真实API Key
|
||||
笏披楳 譖エ譁ー蜷守ォッ邇ッ蠅<EFBDAF>序驥<E5BA8F> 竊?驥榊星蠎皮畑
|
||||
└─ 更新后端环境变量 → 重启应用
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 驛ィ鄂イ鬘コ蠎剰ッエ譏<EFBDB4>
|
||||
- 笨?`05-Node.js蜷守ォッ-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` - 邇ッ蠅<EFBDAF>序驥城<E9A9A5>鄂ョ
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 隨?闃ゑシ亥キイ蟄伜惠<E4BC9C><E683A0>
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 部署顺序说明
|
||||
- ✅ `05-Node.js后端-SAE容器部署指南.md` - 环境变量配置
|
||||
- ✅ `07-关键配置补充说明.md` - 第2节(已存在)
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>統 P3 譛菴ウ螳櫁キオ陦・蜈?
|
||||
## 📝 P3 最佳实践补充
|
||||
|
||||
### 7. 箝絶ュ絶ュ絶ュ<EFBFBD> 蠑蜿題ー<E9A18C>ッ墓怙菴ウ螳櫁キオ<EFBDB7><EFBDB5>SH髫ァ驕難シ?
|
||||
### 7. ⭐⭐⭐⭐ 开发调试最佳实践(SSH隧道)
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
RDS在VPC内网,开发者无法直接用Navicat/DBeaver连接
|
||||
```
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**騾夊ソ⑥CS蟒コ遶鬼SH髫ァ驕難シ?*
|
||||
**通过ECS建立SSH隧道:**
|
||||
```bash
|
||||
# 步骤1:建立SSH隧道
|
||||
ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 \
|
||||
@@ -297,107 +297,107 @@ ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 \
|
||||
|
||||
# 步骤2:Navicat连接
|
||||
主机:localhost
|
||||
遶ッ蜿」<EFBFBD>?433
|
||||
端口:5433
|
||||
用户名:aiclinical_rw
|
||||
蟇<EFBFBD><EFBFBD><EFBFBD>シ夲シ<EFBFBD>DS蟇<EFBFBD><EFBFBD><EFBFBD>シ?
|
||||
密码:(RDS密码)
|
||||
```
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 譁ー蠅<EFBDB0>"蠑蜿題ー<E9A18C>ッ墓怙菴ウ螳櫁キ?遶<>闃<EFBFBD>
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 隨?闃ゑシ亥キイ蟄伜惠<E4BC9C><E683A0>
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 新增"开发调试最佳实践"章节
|
||||
- ✅ `07-关键配置补充说明.md` - 第7节(已存在)
|
||||
|
||||
---
|
||||
|
||||
### 8. ⭐⭐⭐⭐ NAT网关成本优化说明
|
||||
|
||||
**髣ョ鬚俶緒霑ー<EFBFBD>?*
|
||||
**问题描述:**
|
||||
```
|
||||
NAT网关成本¥100/月,对初创团队是一笔开销
|
||||
需要说明替代方案,但不推荐
|
||||
```
|
||||
|
||||
**菫ョ豁」蜀<EFBFBD>ョケ<EFBFBD>?*
|
||||
**修正内容:**
|
||||
|
||||
**謌先悽蟇ケ豈費シ?*
|
||||
| 譁ケ譯<EFBFBD> | 謌先悽 | 遞ウ螳壽?| 螟肴揩蠎?| 謗ィ闕仙コ?|
|
||||
**成本对比:**
|
||||
| 方案 | 成本 | 稳定性 | 复杂度 | 推荐度 |
|
||||
|------|------|--------|--------|--------|
|
||||
| NAT鄂大<EFBFBD> | ツ・100/譛?| 箝絶ュ絶ュ絶ュ絶ュ?| 菴?| 箝絶ュ絶ュ絶ュ絶ュ撰シ域耳闕撰シ榎
|
||||
| SAE扈大ョ哘IP | ツ・30-50/譛?| 箝絶ュ絶ュ?| 荳?| 箝絶ュ絶ュ撰シ磯Κ蛻<CE9A>慍蝓滂シ榎
|
||||
| ECS蛛售NAT | ツ・0<EFBFBD>亥、咲畑ECS<EFBFBD>?| 箝絶ュ<E7B5B6> | 鬮?| 箝絶ュ撰シ井ク肴耳闕撰シ榎
|
||||
| NAT网关 | ¥100/月 | ⭐⭐⭐⭐⭐ | 低 | ⭐⭐⭐⭐⭐(推荐)|
|
||||
| SAE绑定EIP | ¥30-50/月 | ⭐⭐⭐ | 中 | ⭐⭐⭐(部分地域)|
|
||||
| ECS做SNAT | ¥0(复用ECS) | ⭐⭐ | 高 | ⭐⭐(不推荐)|
|
||||
|
||||
**蟒コ隶ョ<EFBFBD>?* 蛻晏<E89BBB>蝗「髦滉ク崎ヲ∝惠霑咎㈹逵<E388B9>蝶<EFBFBD>君AT鄂大<E98482>譏ッ逕滉コァ邇ッ蠅<EFBDAF>噪譬<E599AA><E8ADAC>縲?
|
||||
**建议:** 初创团队不要在这里省钱,NAT网关是生产环境的标配。
|
||||
|
||||
**菫ョ豁」譁<EFBFBD>サカ<EFBFBD>?*
|
||||
- 笨?`00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` - 謌先悽莨ー邂礼ォ<E7A4BC>闃<EFBFBD>
|
||||
- 笨?`07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` - 隨?闃ゑシ亥キイ蟄伜惠<E4BC9C><E683A0>
|
||||
**修正文件:**
|
||||
- ✅ `00-部署架构总览.md` - 成本估算章节
|
||||
- ✅ `07-关键配置补充说明.md` - 第1节(已存在)
|
||||
|
||||
---
|
||||
|
||||
## 📊 修正文件清单
|
||||
|
||||
| 譁<EFBFBD>サカ蜷?| 菫ョ豁」蜀<EFBDA3>ョケ | 莨伜<E88EA8>郤?|
|
||||
| 文件名 | 修正内容 | 优先级 |
|
||||
|--------|---------|--------|
|
||||
| `00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md` | 1. 譛榊苅蜿醍鴫蝨ー蝮<br>2. 譌カ蛹コ扈滉ク<br>3. 螳牙<E89EB3>扈<EFBFBD><E68988>鄂?br>4. 髟懷ワ諡牙叙遲也払<br>5. Python蜀<EFBFBD>ュ倡ョ。逅<EFBFBD><br>6. SSH髫ァ驕<EFBFBD><br>7. NAT謌先悽隸エ譏<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `05-Node.js蜷守ォッ-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` | 1. 譌カ蛹コ驟咲スョ<br>2. Dify豁サ髞∬ッエ譏<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md` | 1. 譛榊苅蜿醍鴫蝨ー蝮<br>2. 譌カ蛹コ驟咲スョ<br>3. 蜀<>ュ倩ァ<E580A9><EFBDA7>シ隸エ譏<EFBDB4> | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `06-蜑咲ォッNginx-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBFBD>漉.md` | 譌<>髴菫ョ謾ケ<E8ACBE>域慮蛹コ蟾イ豁」遑ョ<E98191>?| - |
|
||||
| `03-Dify-ECS驛ィ鄂イ螳悟<EFBFBD>謖<EFBFBD>漉.md` | 1. 螳牙<EFBFBD>扈<EFBFBD><EFBFBD>鄂?br>2. 遶ッ蜿」扈大ョ<E5A4A7> | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `PostgreSQL驛ィ鄂イ遲也払-鞫ク蠎墓冠蜻<E586A0>.md` | 1. 譌カ蛹コ驟咲スョ譛菴ウ螳櫁キ?| 箝絶ュ絶ュ絶ュ<E7B5B6> |
|
||||
| `08-驛ィ鄂イ譽譟・貂<EFBFBD><EFBFBD>?md` | 1. 譛榊苅蜿醍鴫蝨ー蝮 | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md` | 1. 譌カ蛹コ扈滉ク<EFBDB8>域眠蠅樒ャャ8闃ゑシ<E38291><br>2. 髟懷ワ諡牙叙遲也払<E4B99F>域眠蠅樒ャャ9闃ゑシ<E38291><br>3. Python蜀<6E>ュ倡ョ。逅<EFBDA1>シ域眠蠅樒ャャ10闃ゑシ<E38291> | 箝絶ュ絶ュ絶ュ絶ュ?|
|
||||
| `00-部署架构总览.md` | 1. 服务发现地址<br>2. 时区统一<br>3. 安全组配置<br>4. 镜像拉取策略<br>5. Python内存管理<br>6. SSH隧道<br>7. NAT成本说明 | ⭐⭐⭐⭐⭐ |
|
||||
| `05-Node.js后端-SAE容器部署指南.md` | 1. 时区配置<br>2. Dify死锁说明 | ⭐⭐⭐⭐⭐ |
|
||||
| `04-Python微服务-SAE容器部署指南.md` | 1. 服务发现地址<br>2. 时区配置<br>3. 内存规格说明 | ⭐⭐⭐⭐⭐ |
|
||||
| `06-前端Nginx-SAE容器部署指南.md` | 无需修改(时区已正确) | - |
|
||||
| `03-Dify-ECS部署完全指南.md` | 1. 安全组配置<br>2. 端口绑定 | ⭐⭐⭐⭐⭐ |
|
||||
| `PostgreSQL部署策略-摸底报告.md` | 1. 时区配置最佳实践 | ⭐⭐⭐⭐ |
|
||||
| `08-部署检查清单.md` | 1. 服务发现地址 | ⭐⭐⭐⭐⭐ |
|
||||
| `07-关键配置补充说明.md` | 1. 时区统一(新增第8节)<br>2. 镜像拉取策略(新增第9节)<br>3. Python内存管理(新增第10节) | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 笨?鬪瑚ッ∵ク<E288B5>黒
|
||||
## ✅ 验证清单
|
||||
|
||||
### 驛ィ鄂イ蜑埼ェ瑚ッ?
|
||||
### 部署前验证
|
||||
|
||||
```bash
|
||||
笘?1. 譽譟・謇譛臥識蠅<EFBFBD>序驥丈クュ逧<EFBFBD>恪蜉。蝨ー蝮
|
||||
- 笨?菴ソ逕ィ蜀<EFBDA8>ス選P<E981B8>?72.16.x.x<EFBFBD>?
|
||||
- 笶?荳堺スソ逕?.sae 蝓溷錐
|
||||
☐ 1. 检查所有环境变量中的服务地址
|
||||
- ✅ 使用内网IP(172.16.x.x)
|
||||
- ❌ 不使用 .sae 域名
|
||||
|
||||
笘?2. 譽譟・謇譛吋ockerfile逧<EFBFBD>慮蛹コ驟咲ス?
|
||||
- 笨?Node.js蜷守ォッ<EFBFBD>哘NV TZ=Asia/Shanghai
|
||||
- 笨?Python蠕ョ譛榊苅<EFBFBD>哘NV TZ=Asia/Shanghai
|
||||
- 笨?蜑咲ォッNginx<EFBFBD>哘NV TZ=Asia/Shanghai
|
||||
- 笨?RDS PostgreSQL<EFBFBD>嗾imezone = Asia/Shanghai
|
||||
☐ 2. 检查所有Dockerfile的时区配置
|
||||
- ✅ Node.js后端:ENV TZ=Asia/Shanghai
|
||||
- ✅ Python微服务:ENV TZ=Asia/Shanghai
|
||||
- ✅ 前端Nginx:ENV TZ=Asia/Shanghai
|
||||
- ✅ RDS PostgreSQL:timezone = Asia/Shanghai
|
||||
|
||||
笘?3. 譽譟・ECS螳牙<EFBFBD>扈<EFBFBD><EFBFBD>鄂?
|
||||
- 笨?Redis/Weaviate遶ッ蜿」扈大ョ壼<EFBFBD>?27.0.0.1
|
||||
- 笨?螳牙<E89EB3>扈<EFBFBD>宵蜈∬ョクVPC蜀<43>ス題ョソ髣ョ
|
||||
- 笶?荳榊ッケ蜈ャ鄂大シ謾?000/6379/8080遶ッ蜿」
|
||||
☐ 3. 检查ECS安全组配置
|
||||
- ✅ Redis/Weaviate端口绑定到127.0.0.1
|
||||
- ✅ 安全组只允许VPC内网访问
|
||||
- ❌ 不对公网开放5000/6379/8080端口
|
||||
|
||||
笘?4. 譽譟・髟懷ワ迚域悽邂。逅?
|
||||
- 笨?菴ソ逕ィ隸ュ荵牙喧迚域悽蜿キ<E89CBF><EFBDB7>1.0.0, v1.0.1...<EFBFBD>?
|
||||
- 笶?荳榊ァ狗サ井スソ逕ィlatest譬<EFBFBD>ュセ
|
||||
☐ 4. 检查镜像版本管理
|
||||
- ✅ 使用语义化版本号(v1.0.0, v1.0.1...)
|
||||
- ❌ 不始终使用latest标签
|
||||
|
||||
笘?5. 譽譟・Python譛榊苅隗<EFBFBD><EFBFBD>シ
|
||||
- 笨?蛻晄悄<E69984>?譬?GB
|
||||
- 笨?螯る∞OOM<4F>壼合郤ァ閾ウ2譬?GB
|
||||
☐ 5. 检查Python服务规格
|
||||
- ✅ 初期:1核2GB
|
||||
- ✅ 如遇OOM:升级至2核4GB
|
||||
```
|
||||
|
||||
### 驛ィ鄂イ蜷朱ェ瑚ッ?
|
||||
### 部署后验证
|
||||
|
||||
```bash
|
||||
笘?1. 鬪瑚ッ∵慮蛹コ
|
||||
☐ 1. 验证时区
|
||||
docker exec backend-container date
|
||||
docker exec python-container date
|
||||
psql -h rds-host -c "SHOW timezone;"
|
||||
# 蠎碑ッ・驛ス譏セ遉コ<EFBFBD>哂sia/Shanghai 謌?CST
|
||||
# 应该都显示:Asia/Shanghai 或 CST
|
||||
|
||||
笘?2. 鬪瑚ッ∵恪蜉。霑樣壽?
|
||||
☐ 2. 验证服务连通性
|
||||
# 在后端容器内测试Python服务
|
||||
curl http://172.16.x.x:8000/health
|
||||
# 蠎碑ッ・霑泌屓<EFBFBD>?00 OK
|
||||
# 应该返回:200 OK
|
||||
|
||||
笘?3. 鬪瑚ッ∝ョ牙<EFBFBD>驟咲スョ
|
||||
# 莉主<EFBFBD>鄂第オ玖ッ包シ亥コ碑ッ・螟ア雍・<EFBFBD>?
|
||||
☐ 3. 验证安全配置
|
||||
# 从公网测试(应该失败)
|
||||
telnet ECS公网IP 6379
|
||||
# 蠎碑ッ・雜<EFBFBD>慮謌匁拠扈晁ソ樊<EFBFBD>?
|
||||
# 应该超时或拒绝连接
|
||||
|
||||
笘?4. 鬪瑚ッ<EFBFBD>復蜒冗沿譛ャ
|
||||
# SAE謗ァ蛻カ蜿ー譟・逵矩復蜒乗<EFBFBD><EFBFBD>ュ?
|
||||
☐ 4. 验证镜像版本
|
||||
# SAE控制台查看镜像标签
|
||||
# 应该是具体版本号,不是latest
|
||||
```
|
||||
|
||||
@@ -405,66 +405,65 @@ NAT网关成本¥100/月,对初创团队是一笔开销
|
||||
|
||||
## 📈 修正效果评估
|
||||
|
||||
### 髣ョ鬚倩ァ」蜀ウ邇?
|
||||
### 问题解决率
|
||||
|
||||
- 笨?**P0/P1閾エ蜻ス髣ョ鬚假シ?* 3/3 = 100%
|
||||
- 笨?**P2驥崎ヲ<EFBFBD>琉鬚假シ?* 3/3 = 100%
|
||||
- 笨?**P3譛菴ウ螳櫁キオ<EFBFBD><EFBFBD>** 2/2 = 100%
|
||||
- 笨?**諤サ菴楢ァ」蜀ウ邇<EFBDB3>シ<EFBFBD>** 8/8 = 100%
|
||||
- ✅ **P0/P1致命问题:** 3/3 = 100%
|
||||
- ✅ **P2重要问题:** 3/3 = 100%
|
||||
- ✅ **P3最佳实践:** 2/2 = 100%
|
||||
- ✅ **总体解决率:** 8/8 = 100%
|
||||
|
||||
### 预期收益
|
||||
|
||||
| 扈エ蠎ヲ | 菫ョ豁」蜑埼」朱<EFBDA3>?| 菫ョ豁」蜷取噺逶?|
|
||||
| 维度 | 修正前风险 | 修正后收益 |
|
||||
|------|-----------|-----------|
|
||||
| **蜿ッ逕ィ諤?* | 譛榊苅霑樊磁螟ア雍・100% | 笨?譛榊苅豁」蟶ク霑樊磁 |
|
||||
| **螳牙<EFBFBD>諤?* | Redis/Weaviate蜿ッ閭ス陲ォ謾サ蜃?| 笨?蜿ェ蜈∬ョクVPC蜀<43>ス題ョソ髣ョ |
|
||||
| **遞ウ螳壽?* | Python OOM鬚醍ケ<EFBFBD> | 笨?蜀<>ュ倡ョ。逅<EFBDA1>シ伜喧 |
|
||||
| **蜿ッ扈エ謚、諤?* | 譌・蠢玲慮髣エ豺キ荵ア | 笨?譌カ蛹コ扈滉ク<EFBDB8>梧<EFBFBD>莠取賜譟?|
|
||||
| **蜿ッ髱<EFBFBD>諤?* | 髟懷ワ荳肴峩譁?| 笨?迚域悽邂。逅<EFBDA1>ク<EFBFBD>匆 |
|
||||
| **可用性** | 服务连接失败100% | ✅ 服务正常连接 |
|
||||
| **安全性** | Redis/Weaviate可能被攻击 | ✅ 只允许VPC内网访问 |
|
||||
| **稳定性** | Python OOM频繁 | ✅ 内存管理优化 |
|
||||
| **可维护性** | 日志时间混乱 | ✅ 时区统一,易于排查 |
|
||||
| **可靠性** | 镜像不更新 | ✅ 版本管理清晰 |
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>識 荳倶ク豁・陦悟<E999A6>?
|
||||
## 🎯 下一步行动
|
||||
|
||||
### 遶句叉謇ァ陦鯉シ亥ソ<EFBFBD>怙<EFBFBD>?
|
||||
### 立即执行(必需)
|
||||
|
||||
```bash
|
||||
笘?1. 譖エ譁ー謇譛吋ockerfile<EFBFBD>域慮蛹コ驟咲スョ<EFBFBD><EFBFBD>
|
||||
笘?2. 譖エ譁ー邇ッ蠅<EFBFBD>序驥擾シ域恪蜉。蜿醍鴫蝨ー蝮<EFBFBD>?
|
||||
笘?3. 驟咲スョECS螳牙<EFBFBD>扈<EFBFBD>シ育ォッ蜿」螳牙<EFBFBD><EFBFBD>?
|
||||
笘?4. 驟咲スョRDS譌カ蛹コ<EFBFBD><EFBFBD>sia/Shanghai<EFBFBD>?
|
||||
笘?5. 蛻カ螳夐復蜒冗沿譛ャ邂。逅<EFBFBD>ァ<EFBFBD>激
|
||||
☐ 1. 更新所有Dockerfile(时区配置)
|
||||
☐ 2. 更新环境变量(服务发现地址)
|
||||
☐ 3. 配置ECS安全组(端口安全)
|
||||
☐ 4. 配置RDS时区(Asia/Shanghai)
|
||||
☐ 5. 制定镜像版本管理规范
|
||||
```
|
||||
|
||||
### 后续优化(可选)
|
||||
|
||||
```bash
|
||||
笘?1. 驟咲スョSSH髫ァ驕難シ亥シ蜿台セソ蛻ゥ<EFBFBD><EFBFBD>
|
||||
笘?2. 螳樒鴫OSS遲セ蜷攻RL<EFBFBD>亥ョ牙<EFBFBD><EFBFBD><EFBFBD>
|
||||
笘?3. 驟咲スョ逶第而蜻願ュヲ<EFBFBD><EFBFBD>ython蜀<EFBFBD>ュ假シ?
|
||||
笘?4. 郛門<EFBFBD>閾ェ蜉ィ蛹夜Κ鄂イ閼壽<EFBFBD>?
|
||||
☐ 1. 配置SSH隧道(开发便利)
|
||||
☐ 2. 实现OSS签名URL(安全)
|
||||
☐ 3. 配置监控告警(Python内存)
|
||||
☐ 4. 编写自动化部署脚本
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [00-驛ィ鄂イ譫カ譫<EFBFBD>サ隗<EFBFBD>.md](./00-驛ィ鄂イ譫カ譫<EFBDB6>サ隗<EFBDBB>.md) - 蟾イ譖エ譁?
|
||||
- [03-Dify-ECS驛ィ鄂イ螳悟<EFBFBD>謖<EFBFBD>漉.md](./03-Dify-ECS驛ィ鄂イ螳悟<EFBFBD>謖<EFBFBD>漉.md) - 蟾イ譖エ譁?
|
||||
- [04-Python蠕ョ譛榊<EFBFBD>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md](./04-Python蠕ョ譛榊<E8AD9B>?SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md) - 蟾イ譖エ譁?
|
||||
- [05-Node.js蜷守ォッ-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md](./05-Node.js蜷守ォッ-SAE螳ケ蝎ィ驛ィ鄂イ謖<EFBDB2>漉.md) - 蟾イ譖エ譁?
|
||||
- [00-部署架构总览.md](./00-部署架构总览.md) - 已更新
|
||||
- [03-Dify-ECS部署完全指南.md](./03-Dify-ECS部署完全指南.md) - 已更新
|
||||
- [04-Python微服务-SAE容器部署指南.md](./04-Python微服务-SAE容器部署指南.md) - 已更新
|
||||
- [05-Node.js后端-SAE容器部署指南.md](./05-Node.js后端-SAE容器部署指南.md) - 已更新
|
||||
- [06-前端Nginx-SAE容器部署指南.md](./06-前端Nginx-SAE容器部署指南.md) - 无需修改
|
||||
- [PostgreSQL驛ィ鄂イ遲也払-鞫ク蠎墓冠蜻<E586A0>.md](./PostgreSQL驛ィ鄂イ遲也払-鞫ク蠎墓冠蜻<E586A0>.md) - 蟾イ譖エ譁?
|
||||
- [07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBFBD>ッエ譏<EFBFBD>.md](./07-蜈ウ髞ョ驟咲スョ陦・蜈<EFBDA5>ッエ譏<EFBDB4>.md) - 蟾イ譖エ譁?
|
||||
- [08-驛ィ鄂イ譽譟・貂<EFBFBD><EFBFBD>?md](./08-驛ィ鄂イ譽譟・貂<EFBDA5><E8B282>?md) - 蟾イ譖エ譁?
|
||||
- [PostgreSQL部署策略-摸底报告.md](./PostgreSQL部署策略-摸底报告.md) - 已更新
|
||||
- [07-关键配置补充说明.md](./07-关键配置补充说明.md) - 已更新
|
||||
- [08-部署检查清单.md](./08-部署检查清单.md) - 已更新
|
||||
|
||||
---
|
||||
|
||||
**謚・蜻顔函謌先慮髣エ<EFBFBD>?* 2025-12-14
|
||||
**报告生成时间:** 2025-12-14
|
||||
**报告生成人:** AI助手
|
||||
**螳。譟・萓晄紺<EFBFBD>?* 荳謎ク壽橿譛ッ蝗「髦溷渚鬥?
|
||||
**菫ョ豁」雍ィ驥擾シ?* 箝絶ュ絶ュ絶ュ絶ュ撰シ<E692B0>8/8髣ョ鬚伜キイ蜈ィ驛ィ菫ョ豁」<E8B181><EFBDA3>
|
||||
|
||||
**审查依据:** 专业技术团队反馈
|
||||
**修正质量:** ⭐⭐⭐⭐⭐(8/8问题已全部修正)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user