Skip to content

中国大陆访问与加速 ​

Novora 官方云端方案跑在境外(Vercel + Neon 新加坡),中国大陆访问受运营商线路影响。这篇讲清现状、可选方案和各自代价,帮你选一条适合学校的路。

先理解问题在哪 ​

一次访问要经过三段:

text
教室设备
   |
   v
DNS 解析(改成自定义域名能解决"默认域名被干扰")
   |
   v
Vercel Edge(境外节点,线路质量由运营商决定)
   |
   v
Vercel Functions: sin1 新加坡
   |
   v
Neon: ap-southeast-1 新加坡

换域名只能解决第一段,中间这段跨境线路质量不受你控制。所以"换了域名还是慢"是正常现象,不是配置错了。

你能控制什么 ​

环节能做的效果
域名绑定自定义域名绕开默认域名可能被干扰的问题
函数区域固定 sin1 新加坡避免函数与数据库跨洲往返
数据库区域Neon 选 AWS 新加坡与函数同区域
静态资源独立 CDN(ASSET_CDN_BASE)图片和字体走国内 CDN
整体架构改成本地/内网部署彻底不跨境

前三项是基本配置,已经在默认部署里做好。真正有空间的是后两项。

方案对比 ​

方案一:自定义域名(最低成本) ​

适合:老师主要在校园网使用,偶尔校外访问。

text
绑定 exam.example.com

成本几乎为零,能改善入口可用性,但不能改善跨境线路本身。用学校网络和手机网络各测一次,再决定够不够用。

方案二:静态资源走 CDN ​

适合:页面能打开但加载慢,尤其是首次加载。

设置环境变量:

text
ASSET_CDN_BASE=https://你的cdn地址/

需要先把构建产物同步到 CDN,并验证跨域和缓存策略。

配错会白屏

ASSET_CDN_BASE 配置错误会导致 JS 或 CSS 加载失败。零基础部署不要填。另外 fonts.css 使用 /fonts/... 绝对路径,不会被这个前缀改写,字体要走 CDN 需要额外处理。

方案三:本地 / 内网部署(彻底解决) ​

适合:教室都在校园网内,或者学校要求数据不出校园。

text
教室内网 -> 学校服务器(Docker + 内嵌 PostgreSQL)

优点:

  • 完全不受跨境线路影响;
  • 内网延迟通常只有几毫秒;
  • 数据留在校内。

代价:

  • 需要一台可长期开机的服务器;
  • 需要自己做备份、更新和监控;
  • 校外访问需要公网 IP、端口映射和 HTTPS,通常还要备案。

完整步骤见本地部署总览。

方案四:中国大陆云服务器 ​

适合:既需要公网访问,又不能接受跨境线路。

通常需要:

  • 中国大陆云服务器(部署方式与本地相同,用 Node + PostgreSQL);
  • 域名 ICP 备案(使用大陆服务器对外提供服务时);
  • 视情况涉及公安备案和其他合规要求。

具体以学校、云服务商和当地法规要求为准。

怎么判断该选哪个 ​

按这个顺序测:

  1. 学校网络能不能稳定打开首页? 打不开 → 直接考虑方案三或四;
  2. 能打开但很慢? 先试方案二,再评估方案三;
  3. 教室都在校园网内? 方案三通常最稳妥;
  4. 需要老师在家访问? 方案三 + 公网映射,或方案四。

测试方法 ​

用学校实际网络和至少两种手机运营商网络分别测:

text
1. 首页能否打开,加载多久
2. /api/time 是否返回 JSON,响应多久
3. 上课高峰时段再测一次
4. 连续刷新十次,观察失败次数

只在办公室测一次就上线,往往会在教室现场出问题。

常见的错误期待 ​

期待现实
"买了国内域名就能加速"域名只是入口名称,不改变服务器位置
"开 Cloudflare 代理就一定快"普通国际版不能保证大陆线路质量
"换个 DNS 就好了"DNS 只影响解析,不改变跨境链路
"函数放新加坡就够了"那是必要条件,不是充分条件

合规边界 ​

  • 使用境外托管时,通常不涉及 ICP 备案,但要接受线路波动;
  • 使用中国大陆服务器或大陆 CDN 时,通常需要实名认证和 ICP 备案;
  • 是否涉及数据出境、个人信息和学校信息管理要求,应按学校的信息管理规范执行;
  • 具体要求以服务商和当地法规为准,本页不构成法律意见。

相关 ​

Novora 部署与维护文档