使用自定义域在S3网站上设置索引文档

时间:2017-06-01 00:14:17

标签: amazon-s3 web-hosting

我正在尝试为我的S3托管网站设置索引文档。我已经

  1. 启用网站托管
  2. 将索引文档设置为“index.html”
  3. 上传了index.html文件
  4. 将index.html文件设为公开。
  5. 索引文档在使用原始AWS网址导航到存储桶根目录时有效,但在使用自定义域时不起作用:

    http://static.appgrinders.com.s3-website-us-east-1.amazonaws.com/index.html (作品)
    http://static.appgrinders.com.s3-website-us-east-1.amazonaws.com (工作)
    http://static.appgrinders.com/index.html (工作)
    http://static.appgrinders.com (访问被拒绝 - 403错误)

1 个答案:

答案 0 :(得分:8)

您的DNS配置不正确。

您指向其中一个REST端点(CNAME s3.amazonaws.com),它不支持索引文档。您需要DNS指向网站托管端点,在这种情况下它是CNAME static.appgrinders.com.s3-website.us-east-1.amazonaws.com。此端点在S3控制台中可见。

此更改将解决您的问题。

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

错误配置的性质(在我在DNS中确认之前)的赠品是XML错误。托管端点的网站不会返回XML错误 - 它们返回相同的信息,但它包含在一些简单的HTML中,而不是XML中。

但是,请注意,如果您希望使用SSL访问您的网站,则仍需要使用CloudFront。 S3中的自定义域需要CloudFront的SSL支持帮助。与REST端点不同,托管端点的网站根本不会侦听端口443。

在CloudFront配置中,您需要避免相同的错误 - 不要从下拉列表中选择存储桶名称,因为这会将请求发送到REST端点。您需要提供网站端点主机名作为源。