通过 AWS Cloudfront 设置使用 S3 存储桶文件夹的子域

问题描述 投票:0回答:1

我正在尝试使用 S3、Cloudfront 和 Route53 为多个站点设置静态托管。u2028u2028我的目标是在 S3 存储桶文件夹(例如 /site1 和 /site2)中拥有站点,并让它们在我站点的子域 site1.mysite.com 和 site2.mysite.com 中工作

这是我到目前为止所做的。

  • 创建了一个 S3 存储桶,并在其中创建了两个前缀/文件夹,每个前缀/文件夹包含一个站点。 /site1 和 /site2。两者都有各自的index.html
  • S3 存储桶没有公共访问权限。我添加了策略,因此只能通过我的 Cloudfront 发行版访问它
  • 我创建了一个 Cloudfront 发行版。默认来源是 S3 存储桶。网址是https://dxxxexample.cloudfront.net
  • 此时,我的网站正在通过云端 URL 运行:
  • 在 Amazon Route53 中,我添加了我的域 mysite.com
  • 在 Cloudfront 中,我添加了备用域名 site1.mysite.com 和 site2.mysite.com
  • Cloudfront 只允许添加一个 SSL 证书,因此我创建了一个通配符证书 *.createsite.com 并将其添加到 cloudfront。
  • 在 Amazon Route 53 中,我为 site1.mysite.com 和 site2.mysite.com 添加了 A 记录,并使用 Cloudfront 分发的别名。这并不简单。如果我将 site1 添加到记录名称并检查别名,它不会在下拉列表中显示我的 Cloudfront 发行版。如果我将名称更改为 *,它将显示,然后我选择它并将记录名称更改回 site1。
  • 在cloudfront中,我创建了两个新的源站点site1-origin,源路径为/site1,site2-origin,源路径为/site2。
  • 我尝试使用具有上述起源的模式 /site1/* 和 /site2/* 创建两个额外的缓存行为。u2028 u2028

但是,我的设置不起作用。并且无法从 site1.mysite.com/index.html 和 site2.mysite.com/index.html 访问网站

出了点问题,我无法弄清楚。任何帮助将不胜感激。

请注意,我已经进行了广泛的研究。遵循了许多教程和解释,但没有一个建议有效,所以,我在这里遗漏了一些非常基本的东西。期待您的帮助。

amazon-web-services amazon-s3 dns amazon-cloudfront amazon-route53
1个回答
0
投票

看来你已经快到了。问题可能与缓存行为和来源设置有关。尝试以下步骤:

  1. 确保您的缓存行为设置正确:
/site1/* -> site1-origin
/site2/* -> site2-origin
  1. 确保原点具有正确的原点路径:
site1-origin -> /site1
site2-origin -> /site2
  1. 检查您的 CloudFront 分配设置,确保备用域名 (CNAME) 正确设置为
    site1.mysite.com
    site2.mysite.com
  2. 验证您的 Route 53 A 记录指向 CloudFront 分配。

如果一切设置正确,您的子域应该可以工作。如果没有,请检查 CloudFront 日志是否有错误。

© www.soinside.com 2019 - 2024. All rights reserved.