我一直在 Google 和 AWS 文档上检查相关内容,但似乎无法确定这一点。
我有一个 EC2 实例设置,其域名通过虚拟主机提供服务,并且我需要使用 CDN 来存储网站上的内容,主要是图像,即网站资产。
EC2 实例的详细信息
- t2.micro
- 激光多聚酶链反应
- 虚拟主机设置
- DNS:Route 53
- 无 ELB
- 电子商务
- SSL
Cloudfront 分发详细信息
- 来源:example.com
- 交付方式:网络
我尝试做的是在原点使用域名,而 Cloudfront 域现在正在重定向到原点域名并通过 https 获取资产。
我没有发现对网站速度有任何影响,从不同的地理位置进行 ping 操作,因此我开始怀疑这是否正确完成。
我需要解决的部分是以下哪条路径适合使用 EC2 设置 Cloudfront:
- 使用 EC2 实例 DNS 作为“源域名”,并在虚拟主机的“源路径”中添加目录名称
- 仅在‘源域名’中添加域名
谢谢您的帮助!
编辑
附加 53 号路线详细信息
- A 记录 => 名称:www.example.com,值:IP 地址和路由策略:简单
- A 记录 => 名称:example.com、别名:是 & 别名目标:www.example.com
編輯02
更新了 AWS 设置 EC2、Route 53 和 CloudFront 之间的 AWS 设置
答案1
在 DNS 中,example.com 需要是一条 A 记录,且别名设置为是,指向 CloudFront 端点。
这意味着 example.com 不再指向您的源服务器,因此您必须使用不同的名称作为源主机。一种选择是使用实例的 EC2 公共 DNS 名称。
Host:
默认情况下,CloudFront 会在向实例发送请求时在标头中设置源域名。您可以在缓存行为中通过将Host
标头列入白名单来覆盖此设置,这样即使用于实际查找源的 DNS 条目不同,example.com 也会在请求中发送到源。
如果$ dig example.com
没有返回大量 IP 地址,则表明您当前实际上并没有使用 CloudFront。
从 CloudFront 返回的 HTTP 响应还将包含额外的标头,包括X-Amz-Cf-id
、X-Cache
、Via
,有时还包括Age
。