将 cloudfront 通配符 CNAME 子域路由到 s3 存储桶中的文件夹
Posted
技术标签:
【中文标题】将 cloudfront 通配符 CNAME 子域路由到 s3 存储桶中的文件夹【英文标题】:Route cloudfront wildcard CNAME subdomain to a folder in s3 bucket 【发布时间】:2017-06-14 18:40:54 【问题描述】:有没有办法使用 S3 配置 单个 CloudFront 分配,以便
hello.world.com
将提供来自my-bucket.s3.amazonaws.com/hello
的文件,而foo.world.com
将提供来自my-bucket.s3.amazonaws.com/foo
的文件?
我添加了一个带有 *.world.com 通配符 CNAME 的新发行版,我可以按照描述添加来源(通过指定根文件夹),但我不知道如何根据子域路由请求。在行为设置中,有path pattern
,但我认为它不适用于域,而不是文件的路径。
基本上,我想做路径重写,用单个 s3 存储桶的单个云端分发上的子域替换第一个目录。
【问题讨论】:
您是否尝试过创建单独的 CloudFront 分配 这是可以做到的,我一直在寻找答案。如果您熟悉我的答案,他们是sometimes,而是,嗯,彻底......所以我需要一点时间。但我突然想到,有些问题可能是相关的:涉及多少个通配符? foo.example.com/buzz >> example-bucket/foo/buzz 和bar.example.com/buzz >> example-bucket/bar/buzz
。
@Michael-sqlbot 我想要的是允许用户使用用户名注册,并将他们的上传存储在 user.website.com 下。我可以创建许多云端分发,但这需要使用 AWS API 为每个用户创建一个。假设我将有 1000 个用户作为初学者——你介意分享你的解决方案吗?
@Michael-sqlbot 你写过那个答案吗?我有完全相同的用例,希望用户能够选择自己的子域,然后从 S3 的文件夹中提供他们的内容(静态网站)。
没关系,这很可能在几行 Lambda@Edge 中完成。完成后我会发布答案。但可能需要一段时间,因为我处于研究阶段,尚未构建。
【参考方案1】:
我想我需要配置 s3 而不是 cloudfront,http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html
【讨论】:
***.com/questions/29166016/… 这没有达到预期的结果。重定向规则只检查路径,它们只能用于30X
重定向浏览器,它们不做任何内部重写——只是外部重定向。以上是关于将 cloudfront 通配符 CNAME 子域路由到 s3 存储桶中的文件夹的主要内容,如果未能解决你的问题,请参考以下文章
如何为顶点(example.com)和子域(www.example.com)配置相同的来源 - aws Route53 和 CloudFront