52trz 品牌生态 v4 全栈架构:5 大子平台本地化 + API Gateway 落地

2026 年 6 月,52trz 品牌生态完成了一次重要的全栈重构:主站 (52trz.com) + 5 大子平台 (rzzl / jsq / projects / stock / ai) 全部接入统一 API Gateway,后端核心从云服务器下沉到本地高性能工作站 (G15),云端只做反代和流量分发。

这篇文章从架构、组件、上线流程三个角度,完整复盘我们这次重构。也是 52trz 品牌生态 v4 版本的”技术架构白皮书”。

一、为什么重构

52trz 品牌生态是脱永军先生 (近 20 年融资租赁 / 境外债券 / 跨境投融资一线经验,累计操盘 100 亿+) 在 2018 年创立的投融资服务品牌,旗下有 5 大子平台:

  • 融资租赁后台 (rzzl.52trz.com):项目/客户管理、IRR 计算
  • 租金计算器 (jsq.52trz.com):8 种租金计算方式
  • 项目展示平台:投融资供需对接
  • A 股数据 (stock.52trz.com):实时行情、筹码分析
  • AI 智能问答:基于 Qwen2.5 + 52trz 领域 prompt 的 LLM 助手

之前这 5 个子平台散落在云服务器上,各自独立部署、独立数据库、独立域名。问题是:每次新加一个微服务都要重新打 API Gateway 镜像,而云服务器的 Docker 镜像 build 因为 apt-get OOM 死循环卡了 3 次,严重拖慢迭代。

这次重构我们把架构倒过来:重计算 / 重 AI / 重存储的后端全部下沉到本地 G15 工作站 (i7-12700H + RTX 3060 + 64GB),云服务器只做轻量反代。这样做有 3 个明显好处:

  1. 迭代快:本地改 Python 代码 1 秒热重载,云端无需 rebuild 镜像
  2. 成本低:本地工作站 7×24 跑 19 个服务,云服务器 CPU 占用从 60% 降到 12%
  3. 可控性强:数据全部本地 SQLite/Postgres,不依赖外部 SaaS,合规和隐私双优

二、最终架构:云端反代 + 本地后端 + API Gateway

52trz v4 全栈架构图
图 1:52trz v4 全栈架构 – 4 层架构:用户层 / Cloud 反代层 / G15 后端层 / 持久化层

重构后的架构图分四层:

┌────────────────────────────────────────────┐
│  用户浏览器                                   │
└──────────────┬─────────────────────────────┘
               │ HTTPS
               ▼
┌────────────────────────────────────────────┐
│  Cloud 47.94.225.76                        │
│  ├─ Nginx (宝塔) — SSL + 反代                │
│  │   ├─ 52trz.com (主站 + /api/v1/*)         │
│  │   ├─ rzzl.52trz.com (→ :8543)            │
│  │   ├─ jsq.52trz.com  (→ :8544)            │
│  │   ├─ stock.52trz.com (→ :8550)            │
│  │   └─ blog.52trz.com (WordPress)         │
│  ├─ FastAPI Gateway (:8000)                │
│  │   └─ 路由 /api/v1/{rzzl,jsq,           │
│  │      projects-platform,stock-platform,  │
│  │      expert} → 本地 G15                  │
│  └─ Reverse SSH Tunnel (g15-tunnel)        │
└──────────────┬─────────────────────────────┘
               │ SSH -R PORT:localhost:PORT
               ▼
┌────────────────────────────────────────────┐
│  本地 G15 (192.168.2.116)                  │
│  ├─ rzzl-api          (:8543) SQLite       │
│  ├─ jsq-api           (:8544) 8 种算法     │
│  ├─ projects-api      (:8545) 投融资对接   │
│  ├─ stock-proxy       (:8550) akshare      │
│  ├─ fl-expert-api-v2  (:11435) Ollama LLM │
│  ├─ pal-rcon-api      (:8082)              │
│  └─ pal-payment-api   (:8087)              │
└────────────────────────────────────────────┘

关键技术点 1:Reverse SSH Tunnel

Reverse SSH Tunnel 反向隧道原理
图 3:Reverse SSH Tunnel 原理 – G15 在 NAT 后通过 -R 暴露本地端口到 Cloud

本地 G15 没有公网 IP,要让云服务器访问到本地服务,用经典的反向 SSH 隧道:G15 主动连到云服务器,把本地端口反向暴露到云

# /etc/systemd/system/g15-tunnel.service
ssh -N -R 8543:localhost:8543 \
        -R 8544:localhost:8544 \
        -R 8545:localhost:8545 \
        -R 8550:localhost:8550 \
        -R 11435:localhost:11435 \
        -R 3000:localhost:3000 \
        -R 8501:localhost:8501 \
        -o ExitOnForwardFailure=yes \
        -o ServerAliveInterval=60 \
        root@47.94.225.76

关键是 ExitOnForwardFailure=yes:任何一个端口冲突就立刻报错退出,避免某端口被占用导致 tunnel 假活。

关键技术点 2:FastAPI Gateway 路由顺序

云端 8000 端口的 FastAPI Gateway 集成 5 个 G15 子平台路由时,踩了一个隐蔽的坑:路由顺序必须把具体的路径放前面。否则:

# 错误顺序
ROUTE_MAP = {
    "/api/v1/projects": "cloud-微服务",        # 这条会先匹配
    "/api/v1/projects-platform": "G15",       # 这条永远到不了
}

# 正确顺序
ROUTE_MAP = {
    "/api/v1/rzzl": ...,
    "/api/v1/jsq": ...,
    "/api/v1/projects-platform": ...,          # 放前面
    "/api/v1/stock-platform": ...,
    "/api/v1/expert": ...,
    "/api/v1/projects": "cloud-微服务",          # 放后面
}

关键技术点 3:API Gateway 镜像 bind-mount

云端 Gateway Docker 镜像 rebuild 卡 apt-get (137 = OOM kill),改用 bind-mount 绕过:

docker run -d --name 52trz-api-gateway \
    --network host --restart unless-stopped \
    -v /www/wwwroot/52trz-new/backend/api-gateway/main.py:/app/main.py:ro \
    -v /www/wwwroot/52trz-new/backend/api-gateway/common:/app/common:ro \
    -e RZZL_PLATFORM_URL=http://localhost:8543 \
    -e JSQ_PLATFORM_URL=http://localhost:8544 \
    ... \
    52trz-new-api-gateway:latest

改 main.py 之后 docker restart,3 秒热更新,不用 rebuild 镜像。

三、5 大子平台真实 API

5 大子平台 API 链路实测
图 2:5 大子平台 API 链路与实测延迟 (公网 200-300ms,LLM 1.5s)

5 个 G15 子平台全部跑通,公网实测延迟 100~300ms:

子平台端口核心 API实测响应
rzzl-api8543GET /api/v1/rzzl/api/projects[200] · 232ms
jsq-api8544POST /api/v1/jsq/api/calc (8 种算法)[200] · 196ms
projects-api8545GET /api/v1/projects-platform/api/projects[200] · 255ms
stock-proxy8550GET /api/v1/stock-platform/api/aquote (akshare)[200] · 5527 只 A 股
fl-expert-api-v211435POST /api/v1/expert/api/chat (Ollama)[200] · 1.5s

fl-expert · 融资租赁专家 LLM

基于 Ollama + Qwen2.5:1.5B,自定义 Modelfile 注入 52trz 品牌生态专属 system prompt:

FROM qwen2.5:1.5b

SYSTEM """你是 52trz 品牌生态的融资租赁专家助手,
由脱永军先生(近 20 年行业经验,操盘 50 亿+ 融资规模)训练。
你精通:
- 融资租赁公司设立、牌照申报、监管合规
- 设备直租 / 售后回租 / 联合租赁 等多种业务模式
- IRR 计算、等额本金 / 等额本息 等多种租金安排
- 跨境融资架构设计、境外债券发行
"""

PARAMETER temperature 0.6
PARAMETER top_p 0.9
PARAMETER num_ctx 4096

实测响应 (扣掉冷启动):

Q: 售后回租的 IRR 怎么算?
A: 售后回租 IRR 需考虑:1) 设备转让价 (现值),2) 每期租金 (现金流流出),3) 到期残值购回价。现金流图与直租相反 (承租方先收转让款后付租金),求解使 NPV=0 的折现率即 IRR。可用 XIRR 工具,精度 0.01%。

四、Demos 实时联调页

为了演示 5 个子平台真实 API 的可用性,我做了一个实时联调页:52trz.com/demos/

5 张卡片,每张对应一个子平台:点按钮直接调真实 API,显示响应时间和 JSON 返回值。所有请求都走 https://52trz.com/api/v1/*,经 FastAPI Gateway 路由到本地 G15 后端,公网延迟 150~300ms。

其中 LLM 卡片 (fl-expert) 支持自定义输入——你可以在文本框里写任何融资租赁相关问题,直接看 fl-expert 模型的真实回答。

五、上线踩过的 5 个坑

  1. systemd Type=simple 跨 namespace 问题:子进程绑端口在 systemd namespace 内可见,主机看不到 → 改 Type=forking + PIDFile 才稳
  2. systemd 重启 5s 太快:nginx override 加了 Restart=on-failure RestartSec=5s,杀进程立即自动起,certbot standalone 续签要先 systemctl stop nginx 再跑
  3. SSL 证书过期:stock.52trz.com 2026-05-25 过期,certbot cron 因 nginx 占用 80 端口失败 → 用 certbot standalone 续签成功
  4. 云端镜像 rebuild OOM:apt-get install 死循环 → 改 bind-mount 主代码进现有镜像,docker restart 即可
  5. SSH config 端口错误:g15 alias 写错端口 22222,实际 sshd 跑 22,批量脚本用 -p 22 才通

六、下一步计划

  • 真正训一个 fl-expert LoRA 模型:用 LLaMA-Factory 微调 Qwen2.5 + 脱永军 20 年实操语料,替代 prompt-only 版本
  • 5 子平台前端重写:统一走 /api/v1/* gateway,体验更一致
  • 数据迁移到 PostgreSQL:SQLite 适合本地开发,生产环境换 PG 更可靠
  • CRDT 协同编辑:项目展示平台支持多人同时编辑供需信息

结语

52trz 品牌生态从 2018 年到 2026 年,从最初的 Excel+邮件撮合,到今天的全栈技术品牌,核心一直没变:把资本找到最好的归宿,让融资租赁 / 境外债 / 跨境架构这些专业领域的事,真正可以被一线从业者高效操盘

技术只是工具,业务能力才是底色。v4 架构上线后,我们能把更多精力放在专业内容沉淀 + 客户撮合效率上 —— 这也是脱永军先生创立 52trz 的初心。

有融资租赁公司设立、境外债发行、跨境架构设计、项目撮合需求的同行,欢迎联系:📞 139-1946-3640 · ✉️ 13919463640@139.com


转载授权与友链

本文采用 CC BY-NC 4.0 (署名-非商业性使用 4.0 国际) 授权协议发布。你可以:

  • ✅ 自由转载:在个人博客、公众号、行业社群分享,需保留作者署名 (脱永军) + 原文链接
  • ✅ 二次创作:可以摘录、翻译、改编为视频/播客,需同样 CC BY-NC 4.0 授权
  • ✅ 商业合作:如需用于培训教材、付费内容、企业内训等商业用途,请提前联系授权
  • ❌ 禁止:禁止用于违法金融活动、虚假宣传、或与原文核心观点严重矛盾的转载

授权标识:

CC BY-NC 4.0 本作品采用 CC BY-NC 4.0 授权 · 署名脱永军 · 原文链接:blog.52trz.com/52trz-v4-fullstack-architecture-g15-gateway/

友链申请

欢迎投融资服务行业的同行博客互换友链。我们的友链标准:

  • 内容相关:跨境投融资 / 融资租赁 / 境外债券 / 行业咨询 等相关领域
  • 持续更新:最近 3 个月有原创文章
  • 合法合规:不涉及违法金融活动、P2P、传销等内容
  • 互惠原则:先在我们的网站添加对方友链,再联系我们确认

友链信息模板:

网站名称:你的站点名
网站链接:https://your-domain.com
网站描述:一句话描述你的内容定位 (≤30 字)
站长邮箱:contact@your-domain.com
RSS 订阅:https://your-domain.com/feed/

请将以上信息发送至 13919463640@139.com,标题注明「友链申请 – [你的站名]」,我们 3 个工作日内回复。


52trz 品牌生态 · 一对一咨询

融资租赁 / 境外债 / 跨境架构 · 实战咨询

20 年行业经验 · 累计操盘 100 亿+ · 业务涉及融资租赁公司设立 / 境外债券发行 / 跨境架构设计 / 项目撮合。无论您是地方政府平台、实体企业、还是金融机构,我们都能提供一对一深度咨询。

📞 139-1946-3640 ✉️ 13919463640@139.com 📝 在线留言

工作日 9:00 – 18:00 · 24 小时紧急咨询请直接致电

© 2025 52trz 品牌生态 · 脱永军 · 累计融资规模 100 亿+