ListBucketResult xml试图在S3 thorugh CloudFront中显示网站的主页

时间:2018-06-16 22:43:53

标签: amazon-s3 amazon-cloudfront

我创建了一个存储我静态网站的存储桶。

我将属性设置为静态网站托管(索引文档值index.html)

网址为:http://mywebsitelearningcurve.s3-website-us-east-1.amazonaws.com(目前尚无法解释)

我将其公开(许可)。

我的水桶概述

/images
/static
/asset-manifest.json
/favicon.ico
/index.html
/manifest.json
/service-worker.js

使用http://mywebsitelearningcurve.s3-website-us-east-1.amazonaws.com我可以访问我的网站。但是我决定在我的面前使用CloudFront。

我为WEB创建了一个新的发行版。

在原始域名上我使用了mywebsitelearningcurve.s3.amazonaws.com

原产地ID:S3-mywebsitelearningcurve

在查看器协议策略中,我选择了:将HTTP重定向到HTTPS。

一旦完成,我等待审慎宣传的时间,我就有了网址https://d2qf2r44tssakh.cloudfront.net/(目前尚无法解释)。

问题: 当我尝试使用https://d2qf2r44tssakh.cloudfront.net/时,它向我展示了一个xml

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>mywebsitelearningcurve</Name>
...
...
...
</ListBucketResult>

但是,当我尝试https://d2qf2r44tssakh.cloudfront.net/index.html时,它正常运行。

我经历了几个tutos并发布但我仍然无法使其发挥作用。有谁可以提供帮助? 感谢

2 个答案:

答案 0 :(得分:11)

我今天遇到了同样的问题,可以通过在发布设置的 默认根对象 中添加index.html来解决此问题:

enter image description here

  

可选。您希望CloudFront返回的对象(例如,   观看者的请求指向您的根网址时)   (http://www.example.com),而不是您的特定对象   分布(http://www.example.com/index.html)。

答案 1 :(得分:0)

我在 AWS 上拥有 5 年的生产经验,并获得了 5 项认证。 谈到 s3 + cloudfront,我总是遇到麻烦 我尝试使用 Cloudformation 自动执行此操作,但 Cloudformation 不支持所需的一切(即 Cloudfront 中的自定义源)。

最后,我只依靠 terraform 来自动化这部分:

https://github.com/riboseinc/terraform-aws-s3-cloudfront-website/blob/master/sample-site/main.tf

如果您不介意使用 terraform,我强烈建议您跳到那里。