> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify-docs-automation-github-pr-review.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS Route 53 和 CloudFront

> 使用 AWS Route 53 进行 DNS 路由，并通过 CloudFront CDN 和 Lambda@Edge 函数将你的 Mintlify 文档部署到子路径。

若要使用 AWS Route 53 和 CloudFront 将文档托管在类似 `yoursite.com/docs` 这样的子路径上，你必须将 DNS（域名系统）服务提供商配置为将其解析到你的 CloudFront 分配。

<div id="overview">
  ## 概览
</div>

将流量路由到以下路径，并将缓存策略（Cache Policy）设置为 **CachingDisabled**：

* `/.well-known/acme-challenge/*` - 用于 Let's Encrypt 证书验证
* `/.well-known/vercel/*` - 用于域名验证
* `/docs/*` - 用于子路径路由
* `/docs/` - 用于子路径路由

将流量路由到以下路径，并将缓存策略（Cache Policy）设置为 **CachingEnabled**：

* `/mintlify-assets/_next/static/*`
* `Default (*)` - 你的网站着陆页

所有 Behaviors 都必须将 **origin request policy** 设置为 `AllViewerExceptHostHeader`。

<img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/all-behaviors.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=3be8eefe5c98d56229685921bda87965" alt="CloudFront「Behaviors」页面，其中包含 4 个 behaviors：/docs/*、/docs、Default 和 /.well-known/*。" width="1603" height="365" data-path="images/cloudfront/all-behaviors.png" />

<div id="create-cloudfront-distribution">
  ## 创建 CloudFront 分配
</div>

1. 在 AWS 控制台中前往 [CloudFront](https://aws.amazon.com/cloudfront)。
2. 选择 **Create distribution**。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/create-distribution.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=535731f739ea42521318c2202048ae1f" alt="CloudFront Distributions 页面，高亮显示 “Create distribution” 按钮。" width="3024" height="922" data-path="images/cloudfront/create-distribution.png" />
</Frame>

3. 在 Origin domain 中输入 `[SUBDOMAIN].mintlify.site`，其中 `[SUBDOMAIN]` 是你项目的唯一子域。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/origin-name.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=38d9fafaf80517ad3246ff5487814f64" alt="CloudFront “Create distribution” 页面显示 “acme.mintlify.site” 作为 Origin domain。" width="1495" height="1036" data-path="images/cloudfront/origin-name.png" />
</Frame>

4. 在 “Web Application Firewall (WAF)” 中，启用安全防护。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/enable-security-protections.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=6eda3c607db3d2b317c860ba45ba5349" alt="Web Application Firewall (WAF) 选项，已选择 “Enable security protections”。" width="1482" height="877" data-path="images/cloudfront/enable-security-protections.png" />
</Frame>

5. 其余设置保持默认。
6. 选择 **Create distribution**。

<div id="add-default-origin">
  ## 添加默认 Origin
</div>

1. 创建分发后，前往 “Origins” 标签页。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/origins.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=54c13aeef85b1a374ea03703f5473604" alt="CloudFront 分发界面，高亮显示 “Origins” 标签页。" width="3024" height="1466" data-path="images/cloudfront/origins.png" />
</Frame>

2. 找到与你主域名对应的预发布环境 URL。具体取决于你的落地页托管方式。例如，Mintlify 的预发布 URL 是 [mintlify-landing-page.vercel.app](https://mintlify-landing-page.vercel.app)。

<Info>
  如果你的落地页托管在 Webflow 上，请使用 Webflow 的预发布 URL，通常为 `.webflow.io`。

  如果你使用 Vercel，请使用每个项目默认提供的 `.vercel.app` 域名。
</Info>

3. 新建一个 Origin，并将你的预发布 URL 填入 “Origin domain”。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/default-origin.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=a4acecb13489cacd6dde87d39dfced10" alt="CloudFront 的 “Create origin” 页面，高亮显示 “Origin domain” 输入框。" width="3024" height="1332" data-path="images/cloudfront/default-origin.png" />
</Frame>

此时，你应当有两个 Origins：一个为 `[SUBDOMAIN].mintlify.site`，另一个为你的预发布 URL。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/final-origins.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=a551324416a7f1b9b97363cc3b608f02" alt="CloudFront 的 “Origins” 页面，包含两个 origins：一个用于 mintlify，另一个用于 mintlify-landing-page。" width="1230" height="690" data-path="images/cloudfront/final-origins.png" />
</Frame>

<div id="set-behaviors">
  ## 设置行为
</div>

CloudFront 中的行为用于控制子路径逻辑。总体而言，我们希望实现以下逻辑：

* **如果用户访问你的自定义子路径**，跳转到 `[SUBDOMAIN].mintlify.site`。
* **如果用户访问其他任意页面**，跳转到当前登录页。

1. 打开 CloudFront 分配的 “Behaviors” 标签页。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/behaviors.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=225b9132c6181c523892405603397a69" alt="突出显示 CloudFront “Behaviors” 标签页。" width="3024" height="1384" data-path="images/cloudfront/behaviors.png" />
</Frame>

2. 点击 **Create behavior** 按钮，并创建以下行为。

<div id="well-known">
  ### `/.well-known/*`
</div>

为用于 Vercel 域名验证的路径创建一个 **Path pattern** 为 `/.well-known/*` 的行为，并将 **Origin and origin groups** 指向你的文档站点 URL。

在 "Cache policy" 中选择 **CachingDisabled**，以确保这些验证请求直通且不被缓存。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/well-known-policy.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=e56d0b5be149094163a73d6a42d5f7a7" alt="CloudFront “Create behavior” 页面，&#x22;Path pattern&#x22; 为 &#x22;/.well-known/*&#x22;，&#x22;Origin and origin groups&#x22; 指向预发布环境的 URL。" width="1413" height="1098" data-path="images/cloudfront/well-known-policy.png" />
</Frame>

<Info>
  如果 `.well-known/*` 过于宽泛，至少可以为 Vercel 将其细化为 2 个行为：

  * `/.well-known/vercel/*` - Vercel 域名验证所必需
  * `/.well-known/acme-challenge/*` - Let's Encrypt 证书验证所必需
</Info>

<div id="your-subpath">
  ### 你的子路径
</div>

创建一个行为，将 **Path pattern** 设置为你选择的子路径，例如 `/docs`，并将 **Origin and origin groups** 指向 `.mintlify.site` 的 URL（在我们的示例中为 `acme.mintlify.site`）。

* 将 "Cache policy" 设置为 **CachingOptimized**。
* 将 "Origin request policy" 设置为 **AllViewerExceptHostHeader**。
* 将 "Viewer Protocol Policy" 设置为 **Redirect HTTP to HTTPS**。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/behavior-1.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=39883ebb91cef238bcd085b3325e395f" alt="CloudFront 的 &#x22;Create behavior&#x22; 页面，其中 &#x22;Path pattern&#x22; 设置为 &#x22;/docs/*&#x22;，并且 &#x22;Origin and origin groups&#x22; 指向 acme.mintlify.site 的 URL。" width="1520" height="1117" data-path="images/cloudfront/behavior-1.png" />
</Frame>

<div id="your-subpath-with-wildcard">
  ### 带通配符的子路径
</div>

创建一个行为，在 **Path pattern** 中填写你选择的子路径并在后面添加 `/*`，例如 `/docs/*`，并将 **Origin and origin groups** 指向相同的 `.mintlify.site` URL。

除 **Path pattern** 外，其余设置应与基础子路径行为完全一致。

* 将 "Cache policy" 设置为 **CachingOptimized**
* 将 "Origin request policy" 设置为 **AllViewerExceptHostHeader**
* 将 "Viewer protocol policy" 设置为 **Redirect HTTP to HTTPS**

<div id="mintlify-assets_nextstatic">
  ### `/mintlify-assets/_next/static/*`
</div>

* 将“Cache policy”设置为 **CachingOptimized**
* 将“Origin request policy”设置为 **AllViewerExceptHostHeader**
* 将“Viewer protocol policy”设置为 **Redirect HTTP to HTTPS**

<div id="default">
  ### `Default (*)`
</div>

最后，我们将编辑 `Default (*)` 行为。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/default-behavior-1.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=b08538bd018dcf83dd1d14c84094a453" alt="已选中“Default (*)”行为并突出显示 Edit 按钮的 CloudFront 发行版。" width="3024" height="1406" data-path="images/cloudfront/default-behavior-1.png" />
</Frame>

1. 将默认行为的 **Origin and origin groups** 更改为预发布环境的 URL（在我们的示例中为 `mintlify-landing-page.vercel.app`）。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/default-behavior-2.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=515e3751d8b0b362a4896a0ec32dc3a2" alt="CloudFront 的“Edit behavior”页面，突出显示了“Origin and origin groups”输入字段。" width="3024" height="1298" data-path="images/cloudfront/default-behavior-2.png" />
</Frame>

2. 选择 **保存更改**。

<div id="check-behaviors-are-set-up-correctly">
  ### 检查行为是否配置正确
</div>

如果你按前述步骤操作，行为配置应如下所示：

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/all-behaviors.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=3be8eefe5c98d56229685921bda87965" alt="CloudFront “Behaviors” 页面，包含 4 个行为：/docs/*、/docs、Default 和 /.well-known/*。" width="1603" height="365" data-path="images/cloudfront/all-behaviors.png" />
</Frame>

<div id="preview-distribution">
  ## 预览分发
</div>

你现在可以进入 “General” 标签页并访问 **Distribution domain name** 的 URL，来测试分发是否已正确配置。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/preview-distribution.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=51bbfa9af55683269731fc14b7d4dba2" alt="CloudFront “General” 标签页，高亮显示 “Distribution domain name” 的 URL。" width="3024" height="1394" data-path="images/cloudfront/preview-distribution.png" />
</Frame>

所有页面应当指向你的主着陆页；但如果在该 URL 后追加你选择的子路径（例如 `/docs`），则应会跳转到你的 Mintlify 文档实例。

<div id="connect-with-route-53">
  ## 连接 Route 53
</div>

现在，我们将把 CloudFront 分配的功能接入到你的主域名。

<Note>
  本节你也可以参考 AWS 的官方指南：[将 Amazon Route 53 配置为将流量路由到 CloudFront 分配](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html#routing-to-cloudfront-distribution-config)
</Note>

1. 在 AWS 控制台中进入 [Route53](https://aws.amazon.com/route53)。
2. 进入主域名的“Hosted zone”。
3. 选择 **Create record**。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/route53-create-record.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=85b3146c7a5b930042cd8b5b753438d2" alt="Route 53 的“Records”页面，突出显示“Create record”按钮。" width="1540" height="1238" data-path="images/cloudfront/route53-create-record.png" />
</Frame>

4. 打开 `Alias`，然后在 **Route traffic to** 中选择 `Alias to CloudFront distribution` 选项。

<Frame>
  <img src="https://mintcdn.com/mintlify-docs-automation-github-pr-review/KLiX8zhx79rgKAt4/images/cloudfront/create-record-alias.png?fit=max&auto=format&n=KLiX8zhx79rgKAt4&q=85&s=1c65b88587516385443cda890305b6e0" alt="Route 53 的“Create record”页面，突出显示“Alias”开关和“Route traffic to”菜单。" width="3024" height="1494" data-path="images/cloudfront/create-record-alias.png" />
</Frame>

5. 选择 **Create records**。

<Note>
  如果当前存在 A 记录，你可能需要将其删除。
</Note>

你的文档现已通过主域名中你选择的子路径对外可用。

<Note>
  配置好 DNS（域名系统）后，自定义子域通常会在几分钟内生效。DNS 传播有时可能需要 1–4 小时，极少数情况下最长可达 48 小时。如果你的子域未能立即生效，请先耐心等待再进行故障排查。
</Note>
