This commit is contained in:
jiahong
2026-03-22 15:19:22 +08:00
parent e6db29485b
commit e303bb868a
6 changed files with 3462 additions and 103 deletions
@@ -4,12 +4,12 @@
自然写科技拥有四个域名,各自承担明确的角色分工:
| 域名 | 角色 | 说明 |
|------|------|------|
| **yink.ai** | **品牌主域 / 全球前端** | 解析到香港服务器,对外统一宣传,所有营销材料、名片、包装统一使用此域名 |
| writech.ai | 品牌辅助域 | 与 yink.ai 指向同一站点,301 跳转至 yink.ai,保留完整品牌名的可达性 |
| writech.cn | 大陆数据服务 | ICP 备案,承载 API、存储、AI 处理,所有用户数据留存于大陆 |
| writech.hk | 备用 / 香港节点 | 可作 yink.ai 的 CNAME 或香港 CDN 源站备用入口 |
| 域名 | 角色 | 注册/托管 | 说明 |
|------|------|----------|------|
| **yink.ai** | **品牌主域 / 全球前端** | **阿里云** | 解析到阿里云新加坡服务器,对外统一宣传,所有营销材料、名片、包装统一使用此域名 |
| writech.ai | 品牌辅助域 | 阿里云 | 与 yink.ai 指向同一站点,301 跳转至 yink.ai,保留完整品牌名的可达性 |
| writech.cn | 大陆数据服务 | 腾讯云 | ICP 备案已完成,承载 API、存储、AI 处理,所有用户数据留存于大陆 |
| writech.hk | 备用 / 香港节点 | 阿里云 | 可作 yink.ai 的 CNAME 或备用入口 |
**为什么选择 yink.ai 作为品牌主域**
@@ -28,15 +28,15 @@
### 2.1 首页(yink.ai
- 部署于香港云服务器(阿里云 HK / 腾讯云 HK),并接入 **Cloudflare** 全球 CDN
- 部署于阿里云新加坡服务器(47.84.109.13),并接入**阿里云 CDN** 全球加速
- 页面为纯静态(HTML / CSS / JS),内容基本不变,CDN 全球缓存后访问极快
- 大陆用户访问 yink.ai 属于"浏览境外网站",只要页面不含敏感内容,一般可正常访问(与 GitHub Pages、Notion 等性质相同)
- 访问 writech.ai 自动 301 跳转至 yink.ai,两个域名共享同一香港源站
- 访问 writech.ai 自动 301 跳转至 yink.ai,两个域名共享同一阿里云新加坡源站
- **首页服务器不存放任何用户数据**,仅作品牌展示与产品介绍
### 2.2 大陆数据服务(writech.cn
独立 ICP 备案,部署于大陆云服务器(阿里云 / 腾讯云),承载全部后端业务:
writech.cn 已完成 ICP 备案,部署于腾讯云广州服务器(106.55.191.177),承载全部后端业务:
- 用户账号注册 / 登录 / 认证(OAuth2 / JWT
- 智能笔笔迹数据上传 / 下载
@@ -72,33 +72,35 @@ yink.ai 前端 JS
### 2.4 海外数据服务(按需扩展)
当海外业务增长到需要独立节点时,通过 Cloudflare Worker 实现地区智能路由,无需改动客户端代码:
当海外业务增长到需要独立节点时,通过阿里云 CDN 边缘脚本(EdgeScript)或 API 网关实现地区智能路由,无需改动客户端代码:
```
用户访问 yink.ai 首页
└─ Cloudflare Worker 检测用户 IP 所在地区
└─ 阿里云 CDN 边缘节点检测用户 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
- 阿里云 CDN 边缘脚本提供地区检测能力,前端 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 | 香港备用入口 |
.ai 和 .hk 域名 DNS 托管于**阿里云 DNS**.cn 域名 DNS 托管于**腾讯云 DNSPod**
| 记录 | 类型 | 指向 | DNS 平台 | 用途 |
|------|------|------|---------|------|
| **yink.ai** | **A** | **阿里云新加坡服务器** | **阿里云 DNS** | **品牌主域首页** |
| www.yink.ai | CNAME | yink.ai | 阿里云 DNS | 带 www 访问 |
| api.yink.ai | CNAME | api.writech.cn | 阿里云 DNS | 预留,转发至大陆 API |
| api-sg.yink.ai | A | 新加坡服务器 | 阿里云 DNS | 海外 API(按需) |
| writech.ai | A | 阿里云新加坡服务器 | 阿里云 DNS | 辅助域,301 跳转至 yink.ai |
| www.writech.ai | CNAME | writech.ai | 阿里云 DNS | 301 跳转至 yink.ai |
| writech.cn | A | 腾讯云广州服务器 | 腾讯云 DNSPod | 大陆数据服务(ICP 已备案) |
| api.writech.cn | A | 腾讯云广州服务器 | 腾讯云 DNSPod | 大陆数据 API |
| writech.hk | CNAME | yink.ai | 阿里云 DNS | 备用入口 |
---
@@ -114,20 +116,19 @@ yink.ai 前端 JS
### 3.2 推荐方案
**方案 A — Cloudflare Email Routing(免费,适合早期)**
**方案 A — 免费邮件转发服务(适合早期)**
```
yink.ai DNS 托管于 Cloudflare
└─ 开启 Cloudflare Email Routing(免费功能
└─ MX 记录自动指向 Cloudflare 邮件路由服务器
将 xxx@yink.ai 转发到员工实际收件邮箱
├─ 个人员工:转发到各自的 Gmail / QQ 邮箱
└─ 客服角色:转发到飞书群邮箱 / 企业微信
yink.ai DNS 托管于阿里云
└─ 配置 MX 记录指向免费邮件转发服务(如 ImprovMX / ForwardEmail.net
└─ 将 xxx@yink.ai 转发到员工实际收件邮箱
个人员工:转发到各自的 Gmail / QQ 邮箱
└─ 客服角色:转发到飞书群邮箱 / 企业微信
└─ 发件配置:在 Gmail / Outlook 中添加"以其他地址发送"
配置 SMTP 凭据,对外显示 xxx@yink.ai 发出
```
优点:完全免费,5 分钟配置完成,无需购买额外服务
优点:免费或极低成本,配置简单,无需购买额外服务
适合:公司初创期,人员 20 人以内
---
@@ -194,69 +195,217 @@ 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 邮箱。
> **说明**:以上记录中的具体值(MX 主机名、SPF include、DKIM 公钥)在选定邮件服务商后,由服务商管理后台提供,按实际值填写到对应 DNS 托管平台(阿里云 DNS)即可。writech.ai 辅助域的 MX 配置确保历史 @writech.ai 邮件可正常接收并转发至对应 @yink.ai 邮箱。
---
## 四、SSL / TLS 证书规划
全站 HTTPS 是安全底线,四个域名及其子域均须配置 SSL 证书,且需兼顾成本、自动续期和多域名管理的便捷性
全站 HTTPS 是安全底线,四个域名及其子域均须配置 SSL 证书。统一采用 **ZeroSSL** 作为证书签发服务,由 **writech.hk 服务器**集中运行 acme.sh 脚本完成所有域名的证书申请与自动续期,再分发至各业务服务器
### 4.1 各域名证书方案
### 4.1 统一证书方案ZeroSSL
| 域名 / 子域 | 推荐方案 | 证书类型 | 费用 | 有效期 / 续期 |
|------------|---------|---------|------|---------------|
| 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 自动续期 |
**为什么选择 ZeroSSL**
- 免费 DV 证书,90 天有效期,通过 ACME 协议自动续期
- 根证书为 Sectigo(原 Comodo),全球浏览器和设备信任链完整,兼容性优于 Let's Encrypt 在部分老旧设备上的表现
- 提供 Web 管理面板(zerossl.com),可随时查看已签发证书状态
- 完整支持 ACME v2 协议,与 acme.sh 工具无缝集成
- 支持通配符证书(Wildcard)和多域名 SAN 证书
**证书覆盖范围**
| 域名 / 子域 | 证书类型 | 费用 | 有效期 / 续期 |
|------------|---------|------|---------------|
| yink.ai / *.yink.ai | DV 通配符 | 免费 | 90 天,acme.sh 自动续期 |
| writech.ai / *.writech.ai | DV 通配符 | 免费 | 90 天,acme.sh 自动续期 |
| writech.cn / *.writech.cn | DV 通配符 | 免费 | 90 天,acme.sh 自动续期 |
| writech.hk / *.writech.hk | DV 通配符 | 免费 | 90 天,acme.sh 自动续期 |
> **DV**Domain Validation)= 域名验证型证书,签发快、免费,满足绝大多数场景。若未来需要在浏览器地址栏显示企业名称(绿色标识),可升级为 OV/EV 证书。
### 4.2 Cloudflare 侧(yink.ai / writech.ai
### 4.2 证书管理架构
yink.ai 和 writech.ai 两个域名均托管到 Cloudflare 后,各自自动获得以下两层 TLS
**writech.hk 服务器**承担证书集中管理节点的角色
```
用户浏览器 ←─ Cloudflare Universal SSL(自动签发)─→ Cloudflare CDN 边缘节点
Cloudflare 边缘节点 ←─ Origin Certificate15年有效)─→ 香港源站服务器
writech.hk 服务器(证书管理中心)
|
|-- acme.sh + ZeroSSL ACME
| |-- 申请/续期 yink.ai 通配符证书
| |-- 申请/续期 writech.ai 通配符证书
| |-- 申请/续期 writech.cn 通配符证书
| |-- 申请/续期 writech.hk 通配符证书
|
|-- cron 定时任务(每天凌晨 2:00 检查续期)
|
|-- 续期成功后自动分发证书文件
|-- SCP 推送至阿里云应用服务器
|-- SCP 推送至腾讯云应用服务器
|-- SCP 推送至私有云 Linux 服务器
|-- 各服务器执行 reload Nginx
```
- **前端(浏览器 → CDN**Cloudflare 自动签发 Universal SSL 证书,覆盖 `yink.ai``*.yink.ai`(同理 `writech.ai``*.writech.ai`)所有子域,零配置
- **回源(CDN → 源站)**:在 Cloudflare 控制台生成 Origin Certificate(免费,最长 15 年有效),安装到香港源站 Nginx,确保回源链路也加密
- **SSL 模式设为 Full (Strict)**:强制双向验证,杜绝中间人攻击
**通配符证书验证方式**:通配符证书必须通过 DNS TXT 记录验证(DNS-01 Challenge)。acme.sh 内置阿里云 / 腾讯云(DNSPod)DNS API 插件,可全自动完成 DNS 记录的添加与清理,无需人工干预。
### 4.3 大陆侧writech.cn
### 4.3 acme.sh 安装与配置writech.hk
大陆 API 服务器不经过 Cloudflare,需独立申请和管理证书
**方案 A — 云厂商免费证书(推荐)**
- 阿里云 / 腾讯云均提供 **免费 DV 证书**(每年可申请 20 张)
- 在控制台申请 → DNS 验证 → 自动签发 → 下载部署至 Nginx / API 网关
- 到期前云厂商会邮件提醒,可设置自动续期
**方案 B — Let's Encrypt + Certbot 自动化**
**首次安装 acme.sh**
```bash
# 安装 Certbot(以 Ubuntu + Nginx 为例
sudo apt install certbot python3-certbot-nginx
# 安装 acme.sh(以普通用户身份运行,不要使用 root
curl https://get.acme.sh | sh -s email=admin@yink.ai
# 申请证书(含 writech.cn 和 api.writech.cn
sudo certbot --nginx -d writech.cn -d api.writech.cn
# 将默认 CA 切换为 ZeroSSL
acme.sh --set-default-ca --server zerossl
# 自动续期已默认配置,验证:
sudo certbot renew --dry-run
# 注册 ZeroSSL 账号(首次使用需要)
acme.sh --register-account --server zerossl \
--eab-kid "<YOUR_EAB_KID>" \
--eab-hmac-key "<YOUR_EAB_HMAC_KEY>"
```
- 完全免费,90 天有效期,Certbot cron 任务自动续期
- 适合自建服务器(非云厂商托管)场景
> **EAB 凭据获取**:在 zerossl.com 注册账号后,进入 Developer 页面生成 EAB KID 和 HMAC Key。
### 4.4 Nginx HTTPS 配置模板
**申请通配符证书**(.ai / .hk 域名使用阿里云 DNS API):
大陆 API 服务器的 Nginx 推荐配置:
```bash
# 配置阿里云 DNS API 凭据(用于 .ai 和 .hk 域名)
export Ali_Key="<YOUR_ALI_ACCESS_KEY>"
export Ali_Secret="<YOUR_ALI_SECRET_KEY>"
# 申请 yink.ai 通配符证书
acme.sh --issue --dns dns_ali \
-d "yink.ai" -d "*.yink.ai" \
--keylength ec-256
# 申请 writech.ai 通配符证书
acme.sh --issue --dns dns_ali \
-d "writech.ai" -d "*.writech.ai" \
--keylength ec-256
# 申请 writech.hk 通配符证书
acme.sh --issue --dns dns_ali \
-d "writech.hk" -d "*.writech.hk" \
--keylength ec-256
```
**申请 writech.cn 通配符证书**(使用腾讯云 DNSPod API):
```bash
# 配置腾讯云 DNSPod API 凭据(用于 .cn 域名)
export DP_Id="<YOUR_DNSPOD_ID>"
export DP_Key="<YOUR_DNSPOD_KEY>"
# 申请 writech.cn 通配符证书
acme.sh --issue --dns dns_dp \
-d "writech.cn" -d "*.writech.cn" \
--keylength ec-256
```
> **ec-256**:使用 ECC P-256 密钥,比传统 RSA 2048 握手更快、密钥更短,现代浏览器和服务器均已支持。
### 4.4 证书分发与部署
证书申请成功后,需要安装到各业务服务器。当前服务器清单:
| 服务器 | 角色 | 使用的证书 |
|-------|------|----------|
| **腾讯云应用服务器(广州)** | writech.cn 大陆数据服务 | writech.cn 通配符 |
| **阿里云应用服务器(新加坡)** | yink.ai / writech.ai 品牌站点及海外服务 | yink.ai + writech.ai 通配符 |
| **私有云 Linux 服务器** | 数据源站、用户账户信息源 | 按需部署各域名证书 |
| **writech.hk 服务器** | 证书管理中心 | yink.ai + writech.ai + writech.cn + writech.hk 通配符 |
**acme.sh 安装证书到本地(writech.hk 自身)**
```bash
# 安装 yink.ai 证书到 Nginx 目录
acme.sh --install-cert -d "yink.ai" -d "*.yink.ai" \
--key-file /etc/ssl/private/yink_ai.key \
--fullchain-file /etc/ssl/certs/yink_ai.pem \
--reloadcmd "sudo systemctl reload nginx"
# 安装 writech.ai 证书
acme.sh --install-cert -d "writech.ai" -d "*.writech.ai" \
--key-file /etc/ssl/private/writech_ai.key \
--fullchain-file /etc/ssl/certs/writech_ai.pem \
--reloadcmd "sudo systemctl reload nginx"
# 安装 writech.hk 证书
acme.sh --install-cert -d "writech.hk" -d "*.writech.hk" \
--key-file /etc/ssl/private/writech_hk.key \
--fullchain-file /etc/ssl/certs/writech_hk.pem \
--reloadcmd "sudo systemctl reload nginx"
```
**自动分发脚本(deploy_certs.sh**
acme.sh 续期成功后通过 `--reloadcmd` 触发此脚本,将证书推送到远程服务器:
```bash
#!/bin/bash
# deploy_certs.sh — 证书续期后自动分发到各业务服务器
# 部署在 writech.hk 服务器上,由 acme.sh --reloadcmd 触发
LOG_FILE="/var/log/cert_deploy.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# === 远程服务器列表 ===
ALIYUN_HOST="root@<阿里云内网IP>"
TENCENT_HOST="root@<腾讯云内网IP>"
PRIVATE_HOST="root@<私有云IP>"
# === 证书源路径 ===
CERT_DIR="$HOME/.acme.sh"
# === 分发函数 ===
deploy_cert() {
local host=$1
local domain=$2
local remote_cert_dir="/etc/ssl/certs"
local remote_key_dir="/etc/ssl/private"
echo "[$DATE] 分发 $domain 证书到 $host" >> $LOG_FILE
scp -q "${CERT_DIR}/${domain}_ecc/fullchain.cer" \
"${host}:${remote_cert_dir}/${domain//\./_}.pem"
scp -q "${CERT_DIR}/${domain}_ecc/${domain}.key" \
"${host}:${remote_key_dir}/${domain//\./_}.key"
ssh -q "$host" "sudo systemctl reload nginx" && \
echo "[$DATE] $host ($domain) 部署成功" >> $LOG_FILE || \
echo "[$DATE] $host ($domain) 部署失败!" >> $LOG_FILE
}
# === 分发 writech.cn 证书到大陆服务器 ===
deploy_cert "$ALIYUN_HOST" "writech.cn"
deploy_cert "$TENCENT_HOST" "writech.cn"
# === 分发所有域名证书到私有云服务器 ===
for domain in yink.ai writech.ai writech.cn writech.hk; do
deploy_cert "$PRIVATE_HOST" "$domain"
done
# === 重载本地 Nginxwritech.hk 自身)===
sudo systemctl reload nginx
echo "[$DATE] 本地 writech.hk Nginx 已重载" >> $LOG_FILE
echo "[$DATE] === 证书分发完成 ===" >> $LOG_FILE
```
**配置 acme.sh 续期后自动触发分发**
```bash
# 为每个域名设置续期后的部署钩子
acme.sh --install-cert -d "writech.cn" -d "*.writech.cn" \
--reloadcmd "/home/deploy/deploy_certs.sh"
```
> **SSH 免密登录**writech.hk 需预先配置到各远程服务器的 SSH Key 免密登录(`ssh-copy-id`),确保 SCP 和 SSH 命令无需交互。
### 4.5 Nginx HTTPS 配置模板
各服务器的 Nginx 推荐配置(以 writech.cn API 服务器为例):
```nginx
server {
@@ -292,16 +441,35 @@ server {
}
```
### 4.5 证书监控与告警
> writech.hk 的 Nginx 配置类似,将 `ssl_certificate` 路径替换为对应域名的证书文件即可。
证书过期是生产事故高频原因之一,建议配置监控:
### 4.6 自动续期验证
acme.sh 安装时已自动注册 cron 任务,每天凌晨检查证书到期情况,距到期 30 天内自动续期:
```bash
# 查看 acme.sh 自动续期 cron
crontab -l | grep acme.sh
# 输出类似:0 2 * * * "/home/deploy/.acme.sh"/acme.sh --cron --home "/home/deploy/.acme.sh"
# 手动测试续期流程(不会真正续期,仅验证流程)
acme.sh --renew -d "yink.ai" -d "*.yink.ai" --force --dry-run
# 查看所有已管理证书的状态
acme.sh --list
```
### 4.7 证书监控与告警
证书过期是生产事故高频原因之一,建议配置多层监控:
| 方式 | 说明 |
|------|------|
| Cloudflare 仪表盘 | yink.ai / writech.ai 证书由 CF 自动管理,可在 SSL/TLS 页面查看状态 |
| 云厂商短信/邮件提醒 | 阿里云 / 腾讯云证书到期前 30 天自动通知 |
| Certbot renew cron | Let's Encrypt 证书自动续期,配合 `--deploy-hook` 重载 Nginx |
| 外部监控(推荐) | 使用 [UptimeRobot](https://uptimerobot.com)(免费)监控各域名 HTTPS 可用性,到期前自动邮件告警 |
| acme.sh cron 日志 | 续期脚本日志保存在 `~/.acme.sh/acme.sh.log`,可定期检查是否有续期失败记录 |
| deploy_certs.sh 日志 | 分发脚本日志保存在 `/var/log/cert_deploy.log`,记录每次推送结果 |
| ZeroSSL 管理面板 | 登录 zerossl.com 查看所有已签发证书的到期时间和状态 |
| 外部监控(推荐) | 使用 [UptimeRobot](https://uptimerobot.com)(免费)监控各域名 HTTPS 可用性,证书异常时自动邮件告警 |
| 脚本告警(推荐) | 在 deploy_certs.sh 中增加续期失败时发送邮件或企业微信/飞书通知的逻辑 |
---
@@ -310,32 +478,37 @@ server {
```
┌─────────────────────────────────┐
│ 用户(大陆 / 海外) │
└────────────────┬───────────────┘
└────────────────┬───────────────┘
│ HTTPS
┌─────────────────────────────────┐
│ yink.ai(主)/ writech.ai301跳转) │
Cloudflare CDN · 香港源站
静态首页 / 品牌落地页 / 文档
└──────────┬──────────────┬────────┘
CORS API │ CORS API
▼ ▼
┌───────────────────┐ ┌──────────────────────┐
│ api.writech.cn │ api-sg.writech.ai
(大陆·ICP备案) │ │ (新加坡·按需上线)
│ 阿里云 / 腾讯云 海外云服务器
│ · 用户认证 │ │ · 海外用户数据 │
· 笔迹数据存储 │ │ · 独立合规存储
│ · AI 手写识别 │ │ · 公共数据同步 │
│ · MQTT 实时通道 │ │ │
· OTA 固件升级 │ └──────────────────────
└───────────────────┘
┌─────────────┴─────────────┐
▼ ▼
┌───────────────────────┐ ┌───────────────────────┐
writech.cn yink.ai / writech.ai
(大陆·ICP 已备案) (品牌站·海外服务)
│ 腾讯云 · 广州 │ │ 阿里云 · 新加坡 │
106.55.191.177 47.84.109.13
│ │ │ │
│ · 用户认证 │ │ · 品牌首页 / 落地页 │
│ · 笔迹数据存储 │ │ · 海外用户服务
· AI 手写识别 · 算力 API 调用
│ · MQTT 实时通道 │ │
│ · OTA 固件升级
└───────────┬───────────┘ └───────────┬───────────┘
│ 数据读写 / 同步
└─────────────┬─────────────┘
─────────────────────────────┐
│ 私有云数据源站 │
│ 118.141.37.23 │
│ · 核心数据存储 │
│ · 用户账户信息源 │
│ · 大容量存储 │
└─────────────────────────────┘
┌─────────────────────────────────┐
│ 企业邮件(@yink.ai 统一域名) │
│ MX → 腾讯企业邮箱 / CF Routing
│ SPF + DKIM + DMARC 全配置
MX → 腾讯企业邮箱
SPF + DKIM + DMARC 全配置 │
└─────────────────────────────────┘
```
@@ -345,13 +518,13 @@ server {
| 阶段 | 任务 | 预计周期 |
|------|------|----------|
| **第一阶段** | writech.ai + yink.ai 域名托管至 CloudflareDNS 全面配置 | 第 1 周 |
| **第一阶段** | 香港源站服务器搭建,静态首页上线 | 第 1-2 周 |
| **第一阶段** | writech.cn ICP 备案(若未完成),大陆 API 服务器上线 | 同步进行 |
| **第一阶段** | yink.ai / writech.ai DNS 在阿里云配置,writech.cn DNS 在腾讯云 DNSPod 配置 | 第 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 周 |
| **第二阶段** | 阿里云 CDN 边缘脚本实现地区检测与智能路由 | 第 4 周 |
| **第三阶段** | 海外 API 节点上线(新加坡),前端智能路由切换 | 按业务需求 |
| **第三阶段** | 数据合规审查,确认海外数据不跨境传输 | 配套进行 |
@@ -359,9 +532,9 @@ server {
## 七、关键注意事项
1. **ICP 备案是底线**writech.cn 必须完成 ICP 备案才能在大陆正常提供服务,备案期间(约 20 个工作日)可先用香港服务器临时承载
1. **ICP 备案已完成**writech.cn 已在腾讯云完成 ICP 备案,大陆数据服务正常运行
2. **yink.ai 首页内容合规**:首页面向全球,避免涉及敏感词汇,确保大陆用户可正常访问
3. **数据主权**:大陆用户产生的数据必须存储于 writech.cn 大陆服务器,不得将用户数据同步至香港或海外节点,符合《数据安全法》和《个人信息保护法》
4. **邮件发件域名一致性**:所有系统通知邮件(注册验证码、订单确认等)的发件地址统一使用 `noreply@yink.ai`,避免用 writech.cn 发信造成品牌形象分裂
5. **HTTPS 全站强制**yink.ai、writech.ai 和 writech.cn 所有端点必须强制 HTTPSCloudflare 可免费提供 TLS 证书
5. **HTTPS 全站强制**yink.ai、writech.ai 和 writech.cn 所有端点必须强制 HTTPS通过 ZeroSSL 统一签发免费 TLS 证书
6. **writech.ai → yink.ai 301 跳转**writech.ai 所有路径统一 301 永久跳转至 yink.ai 对应路径,集中 SEO 权重;确保历史链接、搜索引擎索引不失效