在中国托管 Amazon S3 静态网站
重要
在 2025 年 1 月 6 日之前,您应该重访您的静态网站和 S3 存储桶配置,以确保您通过 ICP 备案或 ICP 许可证使用自定义域名。否则,您的网站可能会受到中国监管要求的影响。
Amazon Web Services 提供多种托管静态网站的方式。Amazon S3 使用服务器端呈现将预构建的 HTML、CSS 和 JavaScript 文件呈现给网络浏览器,这为托管来自 S3 存储桶的网页提供了解决方案。您可以在 S3 存储桶中托管您的网站,并将您的域名直接链接到该网站。您还可以将 Amazon S3 与内容分发网络(CDN)(如 Amazon CloudFront)结合使用来交付网页。CDN 可将延迟减少到毫秒,从而加速向客户交付网站内容。
本主题概述了在 Amazon Web Services 中国(北京)和中国(宁夏)区域取得互联网内容提供商(ICP)备案和通过自定义域名访问您的网站的流程。要在中国托管静态网站,中国法规要求您首先从 ICP 备案系统取得备案或从政府主管部门获得 ICP 许可证。没有 ICP 备案或 ICP 许可证的域不得在中国提供互联网信息服务。除了帮助您遵守法规外,自定义域还比 S3 网站端点更具优势。自定义域比 S3 网站端点更易于记住。搜索引擎也会记录自定义域并将它们编入索引,这可以帮助客户找到您的网站。
先决条件
在将自定义域配置为在 Amazon Web Services 中国(北京)区域和中国(宁夏)区域托管 S3 静态网站之前,您必须满足以下先决条件。
取得 ICP 备案
如果您的域名通过 Amazon Web Services 中国(宁夏)区域中由宁夏西云数据科技有限公司 (NWCD)运营的服务器进行公共访问,您必须通过 NWCD 申请 ICP 备案。
如果您的域名通过 Amazon Web Services 中国(北京)区域中由北京光环新网科技股份有限公司 (Sinnet)运营的服务器进行公共访问,您必须通过 Sinnet 申请 ICP 备案。
如果您申请 ICP 备案,则审核过程可能需要 3-20 天。有关 ICP 备案过程的更多信息,包括常见问题解答、下载和详细说明,请参阅 ICP 备案
确认域名是否有 ICP 备案
如果您不知道自己是否已经有 ICP 备案,可以在工业和信息化部网站上查看现有的 ICP 备案。
-
打开工业和信息化部的 ICP 备案网站,网址为 https://beian.miit.gov.cn
。 -
根据网站上的说明输入查询关键字。
-
要查看您的域名或实体是否已提交 ICP 备案,请在搜索框中输入您的信息。
配置 Amazon S3 静态网站
将自定义域映射到 S3 端点之前,您必须满足以下先决条件。如果您尚未完成这些先决条件,请参阅教程:使用注册到 Route 53 的自定义域配置静态网站中的步骤 1–10。
-
向域名注册商注册您的自定义域。
-
创建域存储桶和可选的子域存储桶:
-
对于您的域存储桶,启用静态网站托管,然后上传您的网站内容。启用静态网站托管后,您的域存储桶会被分配一个 S3 网站端点,例如
www.example.com.cn.s3-website.cn-north-1.amazonaws.com.cn
。您将使用此网站端点配置 Route 53 自定义域。 -
对于您的子域存储桶,在静态网站托管下,为对象配置重定向请求,以重定向至上传到您的域存储桶的网站内容。
您的域存储桶包含构成您网站的文件。您的子域存储桶会将请求重新路由到您的域存储桶。例如,如果客户进入
www.example.com.cn
,您的子域存储桶会将请求转发到您的域存储桶:example.com.cn
。 -
-
清除所有四种 S3 屏蔽公共访问权限设置。您必须清除所有“屏蔽公共访问权限”设置,以便您可以添加允许对存储桶进行公共读取访问的存储桶策略。
-
添加允许对您的存储桶进行公共读取访问的存储桶策略。当您添加授予公共读取访问权限的存储桶策略时,客户可以访问您的网站内容。
使用 Route 53 配置自定义域
在取得 ICP 备案并完成在 Amazon S3 中配置静态网站的先决条件后,您可以将自定义域名映射到 Amazon S3 静态网站并通过自定义域访问您的网站。以下过程使用 Route 53 作为域名管理器。如果您使用其他域名注册商而不是 Route 53,则必须按照适用于该域名注册商的类似步骤,将自定义域映射到 S3 网站端点。有关详细步骤,请联系您的域名注册商。
将您的自定义域映射到 S3 网站端点
完成在 Amazon S3 中配置静态网站的先决条件后,您就有了网站端点,例如 www.example.com.cn.s3-website.cn-north-1.amazonaws.com.cn
(www.example.com.cn
)。要为您的域和子域配置别名记录,请按照以下步骤操作:
通过以下网址打开 Route 53 控制台:https://console.aws.amazon.com/route53/
。 -
请选择托管区域。
-
在托管区域列表中,请选择与您的域名匹配的托管区域的名称。
-
要为您的托管区创建别名记录,请选择创建记录。
-
请选择切换到向导。
-
请选择简单路由,然后选择下一步。
-
请选择定义简单记录。
-
对于记录名称,接受默认值。
-
对于记录类型,选择 CNAME 将流量路由到另一个域名和某些 Amazon Web Services 资源。
-
对于值/流量路由至,选择根据记录类型选择 IP 地址或其他值。在文本框中,输入 S3 网站端点:
。s3-website.cn-north-1.amazonaws.com.cn
-
请选择定义简单记录。
-
-
(可选)如果您为子域存储桶配置了重定向,请为子域存储桶执行步骤 2-7。
-
验证您的网站和重定向是否有效:
-
通过自定义域名(例如
http://example.com.cn
)访问您的网站。 -
如果您配置了子域存储桶,请通过您的子域(例如
http://www.example.com.cn
)访问您的网站。
-
重新配置在 Amazon S3 中托管的网站
如果您已经有一个在 Amazon S3 中托管的静态网站,并且您的域名已有 ICP 备案,则可以通过四种方式将您的域名直接链接到 S3 存储桶。Amazon S3 提供以下选项:
-
将域链接到 S3 存储桶 - 如果 S3 存储桶名称与网站域名相同(例如,存储桶名称为
example.cn
,网站名称为example.cn
),请按照域名提供商提供的说明将您的域链接到 S3 存储桶。这些说明因每个提供商而异。创建 S3 存储桶后,您无法更改存储桶名称。如果存储桶名称与网站域名不同,则可以执行以下操作之一:
-
购买新域 - 您可以购买名称与存储桶名称相同的新域,获取 ICP 备案,然后按照域名提供商提供的步骤将域名链接到存储桶。
-
将网站内容移至名称与域名相同的新存储桶 - 您可以使用与网站域名相同的名称创建一个新存储桶,获取 ICP 记录,然后按照域提供商提供的步骤将域链接到网站存储桶。如果存储桶名称不可用,则可以使用 Amazon CloudFront,如下一个要点所述。
-
使用 Amazon CloudFront 将域映射到域名与存储桶名称不同的存储桶名称 – 要使用 CloudFront 将您的域名映射到您的存储桶,请执行以下操作:
-
按照步骤 2:创建 CloudFront 分配来创建映射到存储桶的 CloudFront 分配。对于来源配置中的来源访问权限,请使用来源访问身份(OAI),但不要接受其默认值。
-
按照添加备用域名向您的 CloudFront 分配添加备用域名。
-
在 CloudFront 分配正常运行后,禁用 S3 静态网站托管,并从您的存储桶策略中删除公共读取访问声明。
-
注意
除非您的域名有 ICP 备案,否则 CloudFront 不会处理您的请求。
通过您的自定义域访问您的网站
将静态网站配置为使用自定义域后,必须更新所有位置中之前通过引用 S3 网站端点 URL 而指向 S3 网站的所有链接。例如,您必须更新您的文档页面、电子邮件新闻稿等,让它们使用新的自定义域。您的自定义域将更容易被您的客户记住,当客户在搜索中使用关键字时,他们将能够在搜索引擎中找到您的网站。