动态 Route53 子域转发
Dynamic Route53 sub-domain forwarding
我正在尝试将 Route53 域重定向到另一个 Route53 域,同时保留子域。
我有一个 example.com 的 Route 53 托管区域,其中包含我的主要网站。
我有另一个用于 example.co.uk 的 Route 53 托管区域,我使用 S3 静态网站重定向规则将其重定向到 example.com(如 中所述)
这对根域非常有用,但我想映射子域,如下例所示:
sub1.example.co.uk --> sub1.example.com
sub2.example.co.uk --> sub2.example.com
...
sub999.example.co.uk --> sub999.example.com
我知道这可以通过为每个子域创建一个新的 S3 存储桶并配置适当的 S3 静态网站重定向规则来完成,但我想知道是否有办法动态地做到这一点 *.example.co.uk 转发到 *.example.com。
最好不需要 运行 一个单独的 EC2 实例 (运行ning nginx)
谢谢!
斯蒂恩
使用现成的 AWS 服务(当然不包括 EC2)的任何组合都没有简单的方法...除了为您要重定向的每个子域创建一个唯一的存储桶。每个账户 100 个存储桶的限制现在是软限制而不是硬限制,因此您现在可以通过提供合理的用例请求 AWS 支持提高您的存储桶限制。
当然,这并不能解决必须配置它们的问题,尽管 Route 53 中的单个通配符 CNAME 将允许您使用根区域网站端点作为目标,然后大量路由到 S3,至少 S3 目前的工作方式,这意味着依赖于一些似乎不太可能改变但可能会改变的未记录的 S3 行为。
对与已创建的存储桶不匹配的主机名的请求仍然会转到 S3 并且 return 一个 "NoSuchBucket" 错误,这本身就是一个问题......事实上,它值得深思在你追求通配符的过程中。
前两段,我提到利用一些未记录的行为和指向 S3 的通配符 CNAME。想象一下被阅读了文档但没有试验过 S3 的实际行为的潜在评论者召集,我在我的 Route 53 托管区域之一中设置了一个通配符 CNAME,将 *.mysterystring.example.com
指向 s3-website-us-west-2.amazonaws.com
.这不是文档所说的你应该这样做的方式,但可以肯定的是,这完全符合我的预期......无论你用什么代替 *
,如果你有一个以完整域名命名的存储桶us-west-2,S3 根据要求提供服务。如果不是,则为 "NoSuchBucket" 错误,包含 S3 试图找到但找不到的存储桶名称。那么,为什么我没有提到实际的测试设置域来证明我的观点呢?好吧... 任何人 嗅探都可以使用与该通配符匹配的未使用主机名之一创建一个存储桶,并在我的域中有一个网站,托管在 S3 中,该设置没有我的配置部分并且在我不知情的情况下。 (!?) 当然,他们会为存储桶付费,但是,嘿,免费域名抢注!接下来你知道,他们在冒充我,窃取客户,谁知道呢?
所以,危险信号:请注意通配符重定向未配置资源的影响。
另一方面,如果您想重定向所有内容(并且您采取措施确保目的地确实是一个死胡同,不能暗中声明未使用的主机名),EC2 实例不会是一个糟糕的交易。一个 t2.micro 可以轻松地每天为数十万个轻量级请求提供服务,例如重定向(我有一个每天处理超过 300k 并且总是有备用的 CPU 积分),费用低于 10 美元/月。
我正在尝试将 Route53 域重定向到另一个 Route53 域,同时保留子域。
我有一个 example.com 的 Route 53 托管区域,其中包含我的主要网站。
我有另一个用于 example.co.uk 的 Route 53 托管区域,我使用 S3 静态网站重定向规则将其重定向到 example.com(如 中所述)
这对根域非常有用,但我想映射子域,如下例所示:
sub1.example.co.uk --> sub1.example.com
sub2.example.co.uk --> sub2.example.com
...
sub999.example.co.uk --> sub999.example.com
我知道这可以通过为每个子域创建一个新的 S3 存储桶并配置适当的 S3 静态网站重定向规则来完成,但我想知道是否有办法动态地做到这一点 *.example.co.uk 转发到 *.example.com。 最好不需要 运行 一个单独的 EC2 实例 (运行ning nginx)
谢谢!
斯蒂恩
使用现成的 AWS 服务(当然不包括 EC2)的任何组合都没有简单的方法...除了为您要重定向的每个子域创建一个唯一的存储桶。每个账户 100 个存储桶的限制现在是软限制而不是硬限制,因此您现在可以通过提供合理的用例请求 AWS 支持提高您的存储桶限制。
当然,这并不能解决必须配置它们的问题,尽管 Route 53 中的单个通配符 CNAME 将允许您使用根区域网站端点作为目标,然后大量路由到 S3,至少 S3 目前的工作方式,这意味着依赖于一些似乎不太可能改变但可能会改变的未记录的 S3 行为。
对与已创建的存储桶不匹配的主机名的请求仍然会转到 S3 并且 return 一个 "NoSuchBucket" 错误,这本身就是一个问题......事实上,它值得深思在你追求通配符的过程中。
前两段,我提到利用一些未记录的行为和指向 S3 的通配符 CNAME。想象一下被阅读了文档但没有试验过 S3 的实际行为的潜在评论者召集,我在我的 Route 53 托管区域之一中设置了一个通配符 CNAME,将 *.mysterystring.example.com
指向 s3-website-us-west-2.amazonaws.com
.这不是文档所说的你应该这样做的方式,但可以肯定的是,这完全符合我的预期......无论你用什么代替 *
,如果你有一个以完整域名命名的存储桶us-west-2,S3 根据要求提供服务。如果不是,则为 "NoSuchBucket" 错误,包含 S3 试图找到但找不到的存储桶名称。那么,为什么我没有提到实际的测试设置域来证明我的观点呢?好吧... 任何人 嗅探都可以使用与该通配符匹配的未使用主机名之一创建一个存储桶,并在我的域中有一个网站,托管在 S3 中,该设置没有我的配置部分并且在我不知情的情况下。 (!?) 当然,他们会为存储桶付费,但是,嘿,免费域名抢注!接下来你知道,他们在冒充我,窃取客户,谁知道呢?
所以,危险信号:请注意通配符重定向未配置资源的影响。
另一方面,如果您想重定向所有内容(并且您采取措施确保目的地确实是一个死胡同,不能暗中声明未使用的主机名),EC2 实例不会是一个糟糕的交易。一个 t2.micro 可以轻松地每天为数十万个轻量级请求提供服务,例如重定向(我有一个每天处理超过 300k 并且总是有备用的 CPU 积分),费用低于 10 美元/月。