使用 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)