使用 CloudFront 和目录重定向的 AWS S3 静态网站托管

Posted

技术标签:

【中文标题】使用 CloudFront 和目录重定向的 AWS S3 静态网站托管【英文标题】:AWS S3 static website hosting with CloudFront and directory redirection 【发布时间】:2017-05-14 19:10:06 【问题描述】:

我的问题不仅在于在 S3 上托管一个静态网站,而且还不止于此。

我的计划是在 S3 上创建一个 www.foo.com。

所以我创建了一个名为 www.foo.com 的存储桶,并将域设置为指向那里。

因此,我存储桶中的每个文件都是公开的,并且是网站的一部分。

但有一个例外:

每当我导航到 www.foo.com/blog 时,我都想对托管在 EC2 容器上的博客进行内部重定向。

这很容易通过使用带有proxy_pass 定义的 nginx 来实现。但是 S3 不是 Nginx。

我知道我可以应用一些重定向规则,但是我将如何进行内部重定向,其中用户的 URL 是 http://www.foo.com/blog 但博客存储在不同的机器上。

【问题讨论】:

你有一个标签amazon-cloudfront,但你没有提到你是否正在使用它? 我将使用 CloudFront 为 S3 资产提供服务。 【参考方案1】:

由于您提到您正在使用 CloudFront,因此您希望将其用于重定向而不是 S3。您将在 CloudFront 分配中配置两个源,即 S3 存储桶和 EC2 服务器。您可以将 S3 配置为默认源,并使用指向 EC2 源的 /blog 模式创建缓存行为。

【讨论】:

我尝试过这样做,但没有成功。我无法理解 CloudFront 测试,因为我更改的每个设置都需要等待 2 小时才能传播。有什么想法@mark-b?

以上是关于使用 CloudFront 和目录重定向的 AWS S3 静态网站托管的主要内容,如果未能解决你的问题,请参考以下文章

AWS CloudFront 和 S3,使用单一重定向处理 WWW 和 HTTPS

通过 AWS Lambda 和 CloudFront 重定向 URL

javascript 使用AWS Lambda重定向到CloudFront上的尾部斜杠。 (所有这一切都因为S3使用302重定向而不是301)

AWS Cloudfront重定向TOO_MANY次

AWS CloudFront 如何遵循 S3 存储桶重定向规则?

如何在 AWS S3 网站 CloudFront 中设置别名重定向?