Gatsby Cloud Unified Hosting 详解:统一托管架构、gatsbyjs.io 域名迁移与构建 URL 变化指南
【免费下载链接】gatsbyReact-based framework with performance, scalability, and security built in.项目地址: https://gitcode.com/gh_mirrors/ga/gatsby
Unified Hosting 是 Gatsby Cloud 为所有构建(Build)统一升级的基础托管架构,以gatsbyjs.io域名作为最直观的信号,且默认对所有构建启用。本文将围绕 统一托管官方文档 展开,系统讲解其背景动机、六大收益、新旧域名映射关系、URL 确定性规则,并结合仓库内 Gatsby Cloud 相关文档与源码资源,说明该架构如何影响重定向、反向代理、Lighthouse 审计、无服务器函数与自定义域名配置,帮助你在升级后正确理解与运维站点。
Unified Hosting 是什么
Unified Hosting 是针对 Gatsby Cloud Hosting 所做的一次基础设施改进,其核心信号是:部署产物托管在gatsbyjs.io域名之下。它默认对所有构建启用,无需手动配置。
在此之前,Gatsby 只有 Production(生产)构建运行在 Unified Hosting 这套基础设施上;升级之后,Pull Request(PR)构建和 Preview(预览)构建等所有类型的构建都统一迁移到了这套更快的现代化架构之上——这正是 "Unified"(统一)一词的含义:所有基础设施被"统一"到同一条更优的托管链路中。
在 Gatsby Cloud 托管部署指南 中可以看到,启用 Gatsby Hosting 后站点会获得一个基于站点前缀(Site Prefix)的默认域名YOUR_SITE_PREFIX.gatsbyjs.io,HTTPS 默认开启,访问https://<default domain>即可查看托管站点。Unified Hosting 正是这套gatsbyjs.io域名体系背后的统一运行时。
六大收益:Unified Hosting 带来的能力清单
官方文档明确列出了 Unified Hosting 为站点带来的六项核心收益,每一项都可以在仓库的其他 Cloud 文档中找到对应的能力佐证:
- Password protection(密码保护):构建产物可受到密码保护,用于在公开前控制访问。这一点在 CMS 预览文档 中也有呼应——其中提到 WordPress 的 Preview loader 不支持受密码保护的 preview 实例,说明密码保护是统一托管下 preview 场景的一项既有能力。
- More accurate Lighthouse reports(更准确的 Lighthouse 报告):托管在 CDN 上的真实产物环境更接近线上运行形态。按 使用 Lighthouse 审计 的说明,Lighthouse 是开源自动化工具,用于审计性能、可访问性、PWA 等指标;Gatsby Cloud 会在每次构建时自动运行 Lighthouse 审计,因此统一托管让审计结果更贴近真实生产环境。
- Faster initial page loads(更快的首屏加载),并运行在 CDN 之上:统一托管架构自带 CDN 分发,静态资源从边缘节点就近返回,显著缩短首屏响应时间。
- Better route caching for browser speed(更好的路由缓存,提升浏览器速度):统一托管对路由级别的响应头与缓存策略做了统一优化,浏览器可更高效地复用缓存资源。
- Unlimited redirects(无限重定向):不再受旧托管方案下重定向数量限制的约束。关于重定向与反向代理的完整用法,可参见 重定向与 Rewrites 操作指南,其中覆盖了基于
createRedirect的通配符(splat)重定向、按国家/地区重定向、按语言(Accept-Language)重定向、query 参数重定向,以及用静态 YAML/JSON 文件管理重定向等能力。 - Reverse proxy behavior(反向代理行为):统一托管支持将请求反向代理到外部站点。在该指南的 "Rewrites and reverse proxies" 一节中可以看到实现方式:在
gatsby-node.js的createPages中通过createRedirect设置fromPath、外部完整 URL 的toPath与statusCode: 200,即可把/docs/*之类的路径代理到https://www.awesomesite.com/docs/*等外部地址,让一个站点在 front 聚合多个后端站点。同时文档也标注了当前限制:内部 rewrites 仅允许一跳(不能 A→B→C 链式代理)、代理请求 20 秒超时、无限循环规则会被忽略。
新旧域名对照:从 gtsb.io 到 gatsbyjs.io
Unified Hosting 对用户最直观的影响是构建 URL 的域名变化:旧构建部署在gtsb.io域,新构建统一部署到gatsbyjs.io域。官方给出的新旧对照如下:
| 构建类型 | 旧域名(Unified Hosting 前) | 新域名(Unified Hosting 后) |
|---|---|---|
| Site(站点构建) | build-{UUID}.gtsb.io | build-{UUID}.gatsbyjs.io |
| Pull Request(PR 构建) | build-{UUID}.gtsb.io | build-{UUID}.gatsbyjs.io |
| Preview(预览构建) | preview-{SITEPREFIX}.gtsb.io | preview-{SITEPREFIX}.gatsbyjs.io |
可以看到,两种域名体系下 URL 的格式完全相同,只是从gtsb.io换成了gatsbyjs.io子域;Site 与 Pull Request 构建使用build-前缀加 UUID,Preview 构建则使用preview-前缀加站点前缀(SITEPREFIX)。
这套域名体系在 Gatsby Cloud 上部署 Functions 的文档中同样被引用:部署在 Gatsby Cloud 的 Functions 在任意构建 URL 上可用,"包括任何 preview URLs(gstb.io域)或 hosting URLs(gatsbyjs.io或你的自定义域名)",且用户为函数设置的Cache-Control等自定义响应头会在 CDN 上被传递并尊重。
旧 URL 兼容性:gtsb.io 不会失效
官方 FAQ 明确承诺:在 Unified Hosting 推出之前部署的任何构建,仍会继续在gtsb.io域上正常工作。这意味着历史链接、收藏夹或第三方引用的旧构建 URL 不会失效,无需为存量构建做迁移操作;只有新产生的构建会落位到新域名。
URL 确定性:除了 UUID 一切可预测
对于关心自动化与监控的团队,官方给出了确定性(deterministic)规则:除了某个构建生成的 UUID 之外,URL 是确定性的。例如 Pull Request 构建的 glob 匹配模式为build-*.gatsbyjs.io,你可以用该模式批量识别、筛选或监控 PR 构建 URL;Preview 构建则为preview-*.gatsbyjs.io模式(其中*对应站点前缀)。
与自定义域名、重定向体系的衔接
gatsbyjs.io域在统一托管中并非终点,它同时也是自定义域名接入的基准:
- 在 Apex 与子域名指南 中,添加自定义域名时子域(如
www)需要 CNAME 指向你的 Gatsby Hosting 默认 URL(即YOUR_SITE_PREFIX.gatsbyjs.io);同时 Gatsby Cloud 允许把gatsbyjs.io域 301 重定向到你的主域名,避免搜索引擎索引gatsbyjs.io默认域。 - 自定义域名的完整接入步骤见 添加自定义域名。
- 重定向、rewrites 与反向代理的完整参数(状态码、通配符、国家/语言条件等)见 重定向与 Rewrites 操作指南。
FAQ 速查
为什么要做 Unified Hosting?
因为旧架构只让 Production 构建享受更快的托管基础设施,而 Unified Hosting 将 上文列出的六大收益 带给所有构建类型,包括 Pull Request 和 Preview 构建。Gatsby 将全部基础设施统一到这套更快、更现代化的架构上。
影响是什么?
主要可见变化是单个构建的 URL 域名:过去部署到gtsb.io,现在全部部署到gatsbyjs.io。
旧gtsb.ioURL 还能用吗?
能。Unified Hosting 上线前部署的构建会继续在gtsb.io域上正常工作。
新 URL 长什么样?
格式不变,只是托管在gatsbyjs.io的子域上(Site/PR 为build-{UUID}.gatsbyjs.io,Preview 为preview-{SITEPREFIX}.gatsbyjs.io)。
URL 是确定性的吗?
是。除每个构建生成的 UUID 外,URL 均为确定性模式,例如 PR 构建的 glob 模式为build-*.gatsbyjs.io。
【免费下载链接】gatsbyReact-based framework with performance, scalability, and security built in.项目地址: https://gitcode.com/gh_mirrors/ga/gatsby
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考