带有 S3 存储桶的 CNAME

CNAME with S3 buckets

我有一个网站,我想将其图像移动到 AWS S3。假设它叫做 mypage.com,我可以访问这样的图像:

https://mypage.com/pics/one.jpg

我创建了一个名为 static.mypage.com 的存储桶来存放所有图像,所以现在我可以像这样访问图像:

https://static.mypage.com.s3.eu-west-1.amazonaws.com/pics/one.jpg

因为它是一个很长的名字,我想使用一个使用 DNS 的“缩短器”。

所以,我想知道如何在我的 DNS 提供商中设置 CNAME,以便在我去...

https://static.mypage.com/pics/one.jpg

...我会从存储桶中获取图像。

谢谢!

简介:我只想将对 static.mypage.com 的每次访问映射到 static.mypage.com.s3.eu-west-1.amazonaws.com

假设您拥有域名,您可以为域设置 CNAME(或别名记录),只要存储桶的名称与主机名完全相同即可。但是,这不适用于 HTTPS,因为所提供的证书是针对 amazonaws.com 域的。

如果您想将域作为 HTTPS 域访问,您应该创建一个 CloudFront 分配,它使用您的 S3 存储桶作为源。您可以将备用名称设置为您选择的域,然后使用提供的 CNAME 作为您的 DNS 值。

有关详细信息,请查看 How do I use CloudFront to serve HTTPS requests for my Amazon S3 bucket? 文档。

我找到了一个避免 DNS CNAME 和 CloudFront 成本的替代解决方案:将其全部放在 NGINX 服务器中。这是一个很好的解决方案,使用代理缓存进行了优化。

解决方法如下:Nginx proxy Amazon S3 resources

希望这对我有所帮助! :)