auto backup 2026-08-12 23:00

This commit is contained in:
2026-08-12 23:00:07 +08:00
parent c70dcbe734
commit 38540abf8d
3 changed files with 90 additions and 2 deletions
+85
View File
@@ -0,0 +1,85 @@
# 工作日志 2026-08-12
## 主题:cc-square 去 Spring Boot 化 —— Node 轻服务 + Redis 点击计数
### 背景 / 起因
- VPS 内存紧张,需放弃部署重型的 Spring Boot 后端(yudao/ruoyi-vue-pro
- 前端需改造为"独立查询数据"形式
- 书签排序需要"访问次数"记录
### 关键决策(用户确认)
1. 点击次数**只存 Redis**,不落 MySQL
2. Redis 启用持久化(VPS Redis 已支持 AOF
3. 排序规则:**纯点击倒序**ZREVRANGE
4. Node 服务部署在 VPS
5. 前端 baseUrl 走 nginx `/api` 反代(rewrite 剥 /api → 48080
### 最终架构
```
前端(cc-square) → nginx(/api rewrite) → Node(Express, 48080) → MySQL(只读) + Redis(点击/排序)
```
### 连接凭据确认(已验证)
- 公网 MySQL`101.34.227.188:3306`readonly,密码 135246host `%`(任意来源)
- 公网 Redis`101.34.227.188:6379`,密码 5gynj20JAOF 持久化
- 验证结果:MySQL 连接+查询通(cc_website 212行/cc_engine 23行/cc_website_type 11行)
- cc_website 启用 124 条;字段:id/status/type_id/title/click/order/icon/url/description...
- cc_website_type 分类名为 **title** 列(非 name),且有 order
- cc_engine 无 order 列,排序仅按 click
### 交付物(/home/yangxuan/cc-square/server/
| 文件 | 说明 |
|------|------|
| server.js | 主程序:静态托管 + /tab/* 接口 + Redis 计数/排序 |
| config.js | 配置(支持环境变量)|
| scripts/init-redis.js | Redis 历史点击导入(幂等)|
| ecosystem.config.js | pm2 配置 |
| package.json | 依赖 express/mysql2/redis/axios |
| .env.example | 环境变量模板 |
| DEPLOY.md | 部署文档(含完整 pm2 命令)|
| FRONTEND-CHANGES.md | 前端改造说明 |
| README.md | 服务导航 |
### Node 服务接口(全部实测通过)
| 方法 | 路径 | 数据源 |
|------|------|--------|
| GET | /tab/engine | MySQL cc_engine |
| GET | /tab/bookmark | MySQL cc_website_type 聚合 |
| GET | /tab/menu | MySQL |
| GET | /tab/quick?limit=N | Redis ZREVRANGE 点击排行 |
| GET | /tab/list-by-type?typeId=N | MySQL |
| GET | /tab/searchBookmark?keyword=x | MySQL |
| GET | /tab/weather/all | 高德API(未配置key时返回空,优雅降级)|
| POST | /tab/quickCount | Redis ZINCRBY(书签)|
| POST | /tab/engineCount | Redis ZINCRBY(引擎)|
| GET | /health | 健康检查 |
### 前端改造(已完成)
1. `src/config/env.js`baseUrl 改为 `/api`nginx 反代)
2. `src/request/http.js`:重写精简版,去掉 token/key 认证
3. `src/request/api/nav.js``/app-api/tab/``/tab/`
- 已 build 成功(1720 模块),响应格式兼容原 yudao `{code:0,data,msg}`
### 部署状态
- **本机(xuan-main**Node 服务 pm2 跑通验证(48080),接口全通
- **VPSxuan-vps / 101.34.227.188**
- 已备份旧前端 → `/usr/share/nginx/html.bak.20260812`
- apt 装 Node v22.23.1 + pm2 7.0.3(用户手动装)
- server 代码在 `/opt/cc-square-server/`npm install 完成(104 包)
- `.env` 已建(含密码,600 权限)
- Redis 已初始化(120 书签 / 3 引擎)
- **Node 服务启动 + 前端 dist 替换由用户手动完成**
- **nginx**:主站 climbcube.conf 已有 `/api` 反代 → `rewrite ^/api(.*)$ $1 break; proxy_pass http://localhost:48080;`
- 前端静态目录:`/usr/share/nginx/html`index.html 即 cc-square 导航页)
### 待办 / 遗留
- [ ] VPS 上启动 Node 服务(用户手动):pm2 start ecosystem.config.js
- [ ] VPS 替换前端 dist 至 /usr/share/nginx/html(用户手动)
- [ ] 前端 baseUrl 需为 /api(本机已改,dist 需重新 build 后上传)
- [ ] 天气接口需高德 key
- [ ] 安全建议:readonly host `%` 建议收窄(需用户确认)
### 环境备注
- 本机 shell 是 zsh(注意 pkill/zsh 通配符坑)
- VPS 是 Debian 12,内存 3.7G,磁盘 69G/32G 已用
- VPS 上多处是 debian 用户属主(/usr/share/nginx/html, /opt/cc-square-server