s3 静态站点:亚马逊使用错误的存储桶

s3 静态站点:亚马逊使用错误的存储桶

我正在使用以下说明设置一个托管在 S3 上的静态站点: https://www.linode.com/docs/platform/object-storage/host-static-site-object-storage/

我已将存储桶设置为 holisticnetworking.net-static。我完成了设置存储桶以通过 HTTPS 提供服务的过程,并检查了信息,它似乎运行良好:

tomb@MacBook-Pro-3 ~ % s3cmd ws-info s3://holisticnetworking.net-static
Bucket s3://holisticnetworking.net-static/: Website configuration
Website endpoint: http://holisticnetworking.net-static.s3-website-us-east-1.amazonaws.com/
Index document:   index.html
Error document:   404.html

您还可以浏览到存储桶端点,这也可以正常工作: http://holisticnetworking.net-static.s3-website-us-east-1.amazonaws.com/

我在旅程结束时发现一个奇怪的问题是,当我浏览该网站时,我收到以下错误消息:

Code: NoSuchWebsiteConfiguration
Message: The specified bucket does not have a website configuration
BucketName: holisticnetworking.net
RequestId: xxx
HostId:xxx

请注意,出于某种奇怪的原因,错误似乎指向的存储桶是另一个名为 holisticnetworking.net 的存储桶。而不是 -static 存储桶。

有人知道这里发生了什么事吗?

答案1

自定义域名必须与存储桶名称匹配。

Amazon S3 仅看到原始主机名 www.example.com,并且不知道用于解析请求的 CNAME 映射。因此 CNAME 和存储桶名称必须相同。

https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

要断开您站点的主机名与存储桶的实际名称之间的连接,您除了需要使用 S3 之外还需要使用 CloudFront,将您的 DNS 记录指向 CloudFront,并将 CloudFront 指向存储桶。

我介绍了设置存储桶以通过 HTTPS 提供服务的过程

不清楚你的意思。如果不使用 CloudFront,则无法在具有 S3 存储桶的自定义域上使用 HTTPS。

Amazon S3 网站端点不支持 HTTPS。

https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-https-requests-s3/

相关内容