Files
system-design/IT服务平台/ICT服务平台/互联网服务体系的建设.md
T
2026-03-21 14:54:46 +08:00

368 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 自然写科技互联网服务体系规划建设
## 一、域名定位
自然写科技拥有四个域名,各自承担明确的角色分工:
| 域名 | 角色 | 说明 |
|------|------|------|
| **yink.ai** | **品牌主域 / 全球前端** | 解析到香港服务器,对外统一宣传,所有营销材料、名片、包装统一使用此域名 |
| writech.ai | 品牌辅助域 | 与 yink.ai 指向同一站点,301 跳转至 yink.ai,保留完整品牌名的可达性 |
| writech.cn | 大陆数据服务 | ICP 备案,承载 API、存储、AI 处理,所有用户数据留存于大陆 |
| writech.hk | 备用 / 香港节点 | 可作 yink.ai 的 CNAME 或香港 CDN 源站备用入口 |
**为什么选择 yink.ai 作为品牌主域**
- **更简洁**yink.ai 仅 7 个字符(writech.ai 为 10 个字符),输入更快,记忆更容易
- **品牌基因一致**:yink 延续 ink 系列命名基因(Y 可代表 "Your ink"),与硬件产品(Bink / Cink / Mink / Tink …)的命名体系高度统一
- **视觉友好**:短域名在二维码、产品丝印、名片、APP 启动页等印刷空间受限场景下显示效果更佳
- **域名后缀**:.ai 后缀体现公司 AI 智能教育的技术定位
**writech.ai 的辅助角色**writech.ai 保留不弃用,所有通过 writech.ai 的访问自动 301 永久跳转至 yink.ai,确保历史链接和搜索引擎收录不失效,同时将 SEO 权重集中到 yink.ai。
**核心设计原则**:品牌形象与数据服务解耦。对外统一用 yink.ai 呈现品牌(writech.ai 自动跳转至 yink.ai),用户实际的数据读写全部落在 writech.cn 的大陆服务器上,符合数据安全合规要求。
---
## 二、网站与 API 架构
### 2.1 首页(yink.ai
- 部署于香港云服务器(阿里云 HK / 腾讯云 HK),并接入 **Cloudflare** 全球 CDN
- 页面为纯静态(HTML / CSS / JS),内容基本不变,CDN 全球缓存后访问极快
- 大陆用户访问 yink.ai 属于"浏览境外网站",只要页面不含敏感内容,一般可正常访问(与 GitHub Pages、Notion 等性质相同)
- 访问 writech.ai 自动 301 跳转至 yink.ai,两个域名共享同一香港源站
- **首页服务器不存放任何用户数据**,仅作品牌展示与产品介绍
### 2.2 大陆数据服务(writech.cn
独立 ICP 备案,部署于大陆云服务器(阿里云 / 腾讯云),承载全部后端业务:
- 用户账号注册 / 登录 / 认证(OAuth2 / JWT
- 智能笔笔迹数据上传 / 下载
- AI 手写识别推理(OCR、笔顺评分、数学识别)
- 文件对象存储(OSS / COS
- MQTT / WebSocket 实时数据通道(笔迹实时同步)
- 设备管理、OTA 升级
大陆端 APP、SDK、设备固件的 API BaseURL 统一配置为:
```
https://api.writech.cn/v1/
```
### 2.3 前后端跨域调用(CORS
yink.ai 首页中的前端 JS 调用大陆 API 涉及跨域,通过标准 CORS 机制解决:
```
yink.ai 前端 JS
└─ fetch("https://api.writech.cn/v1/...")
└─ 大陆 API 服务端响应头配置:
Access-Control-Allow-Origin: https://yink.ai
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
```
配套要点:
- 大陆 API 网关(Nginx / API Gateway)统一拦截并注入 CORS 响应头,允许 `yink.ai``writech.ai` 两个来源,无需每个服务单独配置
- 用户 Token 使用 `Authorization: Bearer <token>` Header 方式传递,避免跨域 Cookie 的复杂性
- 敏感操作(注册、实名认证、支付)建议直接跳转至 `writech.cn` 页面完成,减少跨域风险面
### 2.4 海外数据服务(按需扩展)
当海外业务增长到需要独立节点时,通过 Cloudflare Worker 实现地区智能路由,无需改动客户端代码:
```
用户访问 yink.ai 首页
└─ Cloudflare Worker 检测用户 IP 所在地区
├─ 大陆用户 → API BaseURL = https://api.writech.cn
└─ 海外用户 → API BaseURL = https://api-sg.yink.ai(新加坡)
或 https://api-us.yink.ai(美西)
```
- 海外 API 节点部署于新加坡 / 美西云服务器,用户数据按所在地合规存储
- Cloudflare Worker 提供 `/geo` 接口,前端 JS 首次加载时调用一次,缓存地区信息后动态切换 API BaseURL
- 海外节点与大陆节点通过消息队列异步同步必要的公共数据(如产品目录、固件版本),用户私有数据不跨境传输
### 2.5 DNS 规划
| 记录 | 类型 | 指向 | 用途 |
|------|------|------|------|
| **yink.ai** | **A / Proxied** | **Cloudflare CDN → 香港源站** | **品牌主域首页** |
| www.yink.ai | CNAME | yink.ai | 带 www 访问 |
| api.yink.ai | CNAME / Worker | Cloudflare Worker | 预留,可转发至 api.writech.cn |
| api-sg.yink.ai | A | 新加坡服务器 | 海外 API(按需) |
| writech.ai | A / Proxied | Cloudflare CDN → 同一香港源站 | 辅助域,301 跳转至 yink.ai |
| www.writech.ai | CNAME | writech.ai | 301 跳转至 yink.ai |
| writech.cn | A | 大陆云服务器 | 主备案域 |
| api.writech.cn | A | 大陆 API 服务器 | 大陆数据 API |
| writech.hk | CNAME | yink.ai | 香港备用入口 |
---
## 三、电子邮件服务规划
### 3.1 可行性结论
**完全可行,推荐统一使用 `xxx@yink.ai`**
电子邮件走 SMTP / IMAP 协议,与网站是否在大陆 ICP 备案没有任何关系。只要 yink.ai 域名的 DNS MX 记录指向合规的企业邮件服务器,全体员工和所有客服地址均可统一使用 `@yink.ai` 后缀,国内外用户侧完全一致,品牌形象统一。
> **备注**:如有历史 `@writech.ai` 邮箱地址在外部流通,可同步在 writech.ai 域名下配置 MX 记录,将 `xxx@writech.ai` 来信转发到对应的 `xxx@yink.ai` 邮箱,确保过渡期不丢信。
### 3.2 推荐方案
**方案 A — Cloudflare Email Routing(免费,适合早期)**
```
yink.ai DNS 托管于 Cloudflare
└─ 开启 Cloudflare Email Routing(免费功能)
└─ MX 记录自动指向 Cloudflare 邮件路由服务器
└─ 将 xxx@yink.ai 转发到员工实际收件邮箱
├─ 个人员工:转发到各自的 Gmail / QQ 邮箱
└─ 客服角色:转发到飞书群邮箱 / 企业微信
└─ 发件配置:在 Gmail / Outlook 中添加"以其他地址发送"
配置 SMTP 凭据,对外显示 xxx@yink.ai 发出
```
优点:完全免费,5 分钟配置完成,无需购买额外服务
适合:公司初创期,人员 20 人以内
---
**方案 B — 腾讯企业邮箱(推荐,国内访问最稳定)**
```
yink.ai MX 记录 → 腾讯企业邮箱 MX 服务器(exmail.qq.com
└─ 管理后台统一分配 xxx@yink.ai 邮箱账号
└─ 支持 Web 端、Outlook、iPhone / Android 原生邮件 APP
└─ 大陆访问极速稳定,海外员工同样可用
```
- 费用约 **8 元/人/月**,腾讯企业邮箱明确支持 `.ai` 后缀域名
- 提供邮件归档、反垃圾、大附件等企业级功能
- 适合团队规模 10 人以上,长期使用推荐此方案
---
**方案 C — Google Workspace(国际形象,大陆需 VPN**
```
yink.ai MX 记录 → Google MX 服务器
└─ 全员 Google 账号,收发地址均为 xxx@yink.ai
└─ 大陆员工需通过 VPN 访问,不适合全员在国内的团队
```
适合:海外团队为主,或公司已有 VPN 基础设施
### 3.3 功能邮箱规划
| 用途 | 邮件地址 | 说明 |
|------|----------|------|
| 客户服务 | support@yink.ai | 统一对外,国内外用户均用此地址联系 |
| 商务合作 | bd@yink.ai | 渠道合作、商务洽谈 |
| 技术支持 | tech@yink.ai | 开发者、SDK 集成客户 |
| 媒体公关 | pr@yink.ai | 媒体采访、公关事务 |
| 管理员 | admin@yink.ai | 系统通知,内部使用 |
客服邮箱**国内外统一,不做地区区分**,后台由客服管理系统(如飞书、Zendesk)按用户语言或地区自动路由分派给对应客服人员处理。
### 3.4 必须配置的 DNS 邮件记录
邮件送达率依赖以下四类 DNS 记录,缺少任何一项都会导致邮件被对方标记为垃圾邮件:
```dns
# ===== yink.ai 主邮件域 =====
# 1. MX 记录 指定收件服务器(按选定方案填写)
yink.ai. MX 10 exmail.qq.com. # 腾讯企业邮箱示例
# 2. SPF 声明授权发件服务器,防伪造发件人
yink.ai. TXT "v=spf1 include:spf.mail.qq.com ~all"
# 3. DKIM 邮件内容数字签名,防篡改
selector._domainkey.yink.ai. TXT "v=DKIM1; k=rsa; p=<公钥由邮件服务商提供>"
# 4. DMARC 声明 SPF/DKIM 验证失败时的处理策略
_dmarc.yink.ai. TXT "v=DMARC1; p=quarantine; rua=mailto:admin@yink.ai"
# ===== writech.ai 辅助邮件域(过渡期接收转发)=====
writech.ai. MX 10 exmail.qq.com. # 同一邮件服务商
writech.ai. TXT "v=spf1 include:spf.mail.qq.com ~all"
```
> **说明**:以上记录中的具体值(MX 主机名、SPF include、DKIM 公钥)在选定邮件服务商后,由服务商管理后台提供,按实际值填写到 Cloudflare DNS 即可。writech.ai 辅助域的 MX 配置确保历史 @writech.ai 邮件可正常接收并转发至对应 @yink.ai 邮箱。
---
## 四、SSL / TLS 证书规划
全站 HTTPS 是安全底线,四个域名及其子域均须配置 SSL 证书,且需兼顾成本、自动续期和多域名管理的便捷性。
### 4.1 各域名证书方案
| 域名 / 子域 | 推荐方案 | 证书类型 | 费用 | 有效期 / 续期 |
|------------|---------|---------|------|---------------|
| yink.ai / www / api.yink.ai | Cloudflare Universal SSL | DV 通配符 | 免费 | 自动续期,无需人工介入 |
| writech.ai / www.writech.ai | Cloudflare Universal SSL | DV 通配符 | 免费 | 自动续期,与 yink.ai 同一 Cloudflare 账户 |
| writech.cn / api.writech.cn | 云厂商免费证书(阿里云 / 腾讯云)| DV 单域名 | 免费 | 1 年,到期前自动或手动续期 |
| writech.hk | 随 yink.ai 走 Cloudflare | DV | 免费 | 自动 |
| 未来海外节点 api-sg / api-us | Let's Encrypt + Certbot 自动化 | DV 通配符 | 免费 | 90 天,cron 自动续期 |
> **DV**Domain Validation)= 域名验证型证书,签发快、免费,满足绝大多数场景。若未来需要在浏览器地址栏显示企业名称(绿色标识),可升级为 OV/EV 证书。
### 4.2 Cloudflare 侧(yink.ai / writech.ai
yink.ai 和 writech.ai 两个域名均托管到 Cloudflare 后,各自自动获得以下两层 TLS:
```
用户浏览器 ←─ Cloudflare Universal SSL(自动签发)─→ Cloudflare CDN 边缘节点
Cloudflare 边缘节点 ←─ Origin Certificate15年有效)─→ 香港源站服务器
```
- **前端(浏览器 → CDN**Cloudflare 自动签发 Universal SSL 证书,覆盖 `yink.ai``*.yink.ai`(同理 `writech.ai``*.writech.ai`)所有子域,零配置
- **回源(CDN → 源站)**:在 Cloudflare 控制台生成 Origin Certificate(免费,最长 15 年有效),安装到香港源站 Nginx,确保回源链路也加密
- **SSL 模式设为 Full (Strict)**:强制双向验证,杜绝中间人攻击
### 4.3 大陆侧(writech.cn
大陆 API 服务器不经过 Cloudflare,需独立申请和管理证书:
**方案 A — 云厂商免费证书(推荐)**
- 阿里云 / 腾讯云均提供 **免费 DV 证书**(每年可申请 20 张)
- 在控制台申请 → DNS 验证 → 自动签发 → 下载部署至 Nginx / API 网关
- 到期前云厂商会邮件提醒,可设置自动续期
**方案 B — Let's Encrypt + Certbot 自动化**
```bash
# 安装 Certbot(以 Ubuntu + Nginx 为例)
sudo apt install certbot python3-certbot-nginx
# 申请证书(含 writech.cn 和 api.writech.cn
sudo certbot --nginx -d writech.cn -d api.writech.cn
# 自动续期已默认配置,验证:
sudo certbot renew --dry-run
```
- 完全免费,90 天有效期,Certbot cron 任务自动续期
- 适合自建服务器(非云厂商托管)场景
### 4.4 Nginx HTTPS 配置模板
大陆 API 服务器的 Nginx 推荐配置:
```nginx
server {
listen 80;
server_name api.writech.cn writech.cn;
return 301 https://$host$request_uri; # HTTP 强制跳转 HTTPS
}
server {
listen 443 ssl http2;
server_name api.writech.cn;
ssl_certificate /etc/ssl/certs/writech_cn.pem;
ssl_certificate_key /etc/ssl/private/writech_cn.key;
# TLS 安全加固
ssl_protocols TLSv1.2 TLSv1.3; # 禁用 TLS 1.0/1.1
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
# HSTS — 告诉浏览器此后只允许 HTTPS 访问(建议上线稳定后开启)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# CORS 头(允许 yink.ai 和 writech.ai 前端跨域调用)
# 生产环境建议通过 Nginx map 动态匹配多个 Origin
add_header Access-Control-Allow-Origin "https://yink.ai" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers "Authorization, Content-Type" always;
location / {
proxy_pass http://127.0.0.1:8080; # 后端服务
}
}
```
### 4.5 证书监控与告警
证书过期是生产事故高频原因之一,建议配置监控:
| 方式 | 说明 |
|------|------|
| Cloudflare 仪表盘 | yink.ai / writech.ai 证书由 CF 自动管理,可在 SSL/TLS 页面查看状态 |
| 云厂商短信/邮件提醒 | 阿里云 / 腾讯云证书到期前 30 天自动通知 |
| Certbot renew cron | Let's Encrypt 证书自动续期,配合 `--deploy-hook` 重载 Nginx |
| 外部监控(推荐) | 使用 [UptimeRobot](https://uptimerobot.com)(免费)监控各域名 HTTPS 可用性,到期前自动邮件告警 |
---
## 五、整体架构
```
┌─────────────────────────────────┐
│ 用户(大陆 / 海外) │
└─────────────────┬───────────────┘
│ HTTPS
┌─────────────────────────────────┐
│ yink.ai(主)/ writech.ai301跳转) │
│ Cloudflare CDN · 香港源站 │
│ 静态首页 / 品牌落地页 / 文档 │
└──────────┬──────────────┬────────┘
│ CORS API │ CORS API
▼ ▼
┌───────────────────┐ ┌──────────────────────┐
│ api.writech.cn │ │ api-sg.writech.ai │
│ (大陆·ICP备案) │ │ (新加坡·按需上线) │
│ 阿里云 / 腾讯云 │ │ 海外云服务器 │
│ │ │ │
│ · 用户认证 │ │ · 海外用户数据 │
│ · 笔迹数据存储 │ │ · 独立合规存储 │
│ · AI 手写识别 │ │ · 公共数据同步 │
│ · MQTT 实时通道 │ │ │
│ · OTA 固件升级 │ └──────────────────────┘
└───────────────────┘
┌─────────────────────────────────┐
│ 企业邮件(@yink.ai 统一域名) │
│ MX → 腾讯企业邮箱 / CF Routing │
│ SPF + DKIM + DMARC 全配置 │
└─────────────────────────────────┘
```
---
## 六、实施路线图
| 阶段 | 任务 | 预计周期 |
|------|------|----------|
| **第一阶段** | writech.ai + yink.ai 域名托管至 CloudflareDNS 全面配置 | 第 1 周 |
| **第一阶段** | 香港源站服务器搭建,静态首页上线 | 第 1-2 周 |
| **第一阶段** | writech.cn ICP 备案(若未完成),大陆 API 服务器上线 | 同步进行 |
| **第一阶段** | 企业邮箱开通(腾讯企业邮箱),SPF / DKIM / DMARC 配置,分配员工邮箱 | 第 1 周 |
| **第二阶段** | 大陆 APP / SDK / 固件 API BaseURL 统一切换至 `api.writech.cn` | 第 3-6 周 |
| **第二阶段** | 大陆 API 网关配置 CORS,允许 yink.ai / writech.ai 前端跨域调用 | 同步 |
| **第二阶段** | Cloudflare Worker 实现 `/geo` 地区检测接口 | 第 4 周 |
| **第三阶段** | 海外 API 节点上线(新加坡),前端智能路由切换 | 按业务需求 |
| **第三阶段** | 数据合规审查,确认海外数据不跨境传输 | 配套进行 |
---
## 七、关键注意事项
1. **ICP 备案是底线**writech.cn 必须完成 ICP 备案才能在大陆正常提供服务,备案期间(约 20 个工作日)可先用香港服务器临时承载
2. **yink.ai 首页内容合规**:首页面向全球,避免涉及敏感词汇,确保大陆用户可正常访问
3. **数据主权**:大陆用户产生的数据必须存储于 writech.cn 大陆服务器,不得将用户数据同步至香港或海外节点,符合《数据安全法》和《个人信息保护法》
4. **邮件发件域名一致性**:所有系统通知邮件(注册验证码、订单确认等)的发件地址统一使用 `noreply@yink.ai`,避免用 writech.cn 发信造成品牌形象分裂
5. **HTTPS 全站强制**yink.ai、writech.ai 和 writech.cn 所有端点必须强制 HTTPSCloudflare 可免费提供 TLS 证书
6. **writech.ai → yink.ai 301 跳转**writech.ai 所有路径统一 301 永久跳转至 yink.ai 对应路径,集中 SEO 权重;确保历史链接、搜索引擎索引不失效