0

我试图将Route53域重定向到另一个Route53域,同时维护子域。Dynamic Route53子域转发

我有一个包含我的主网站的example.com的Route 53托管区域。

我有example.co.uk我重定向使用example.com S3的静态网站重定向规则(如在https://stackoverflow.com/a/14289082/918030描述)到另一路由53托管区

这根域,但我的伟大工程想子域映射,如下面的例子:

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实例(运行nginx)

谢谢!

斯泰恩

回答

2

这里没有一个简单的方法,用现成的,货架AWS服务任意组合,以做到这一点(不包括EC2,当然)...除了为每个子域创建一个独特的水桶要重定向。现在,每个帐户100个存储桶限制是一个软限制,而不是硬限制,因此您现在可以 - 通过提出合理的用例 - 请求AWS支持增加您的存储桶限制。

这并不能解决必须配置它们的问题,当然,尽管路由53中的单个通配符CNAME允许您使用根区域网站端点作为目标,然后将其全部路由到S3,至少目前S3的工作方式,这意味着依靠一些无证S3行为似乎不太可能改变,但可以改变。

对未匹配已创建桶的主机名的请求仍然会返回到S3并返回一个“NoSuchBucket”错误,这个错误提出了它自己的问题......实际上,它是追求通配符的食物。

两段落,我提到利用一些未记录的行为和通配符CNAME指向S3。想象一下被已阅读文档但未尝试过S3的实际行为的潜在评论者召唤出来,我在其中一个Route 53托管区域中设置了一个通配符CNAME,指向*.mysterystring.example.coms3-website-us-west-2.amazonaws.com。这不是说文档说你应该这样做,但肯定的是,它的工作原理与我预期的完全一样......无论你放在*的位置,如果你有一个以us-west- 2,S3根据要求提供服务。如果没有,这是一个“NoSuchBucket”错误,完整的桶名S3试图找到,但不能。那么,为什么我没有提到实际的测试设置域来证明我的观点?那么... 任何人嗅探周围可以创建一个使用与通配符匹配的未使用主机名之一的存储桶,并且在我的域中拥有一个网站,在S3中托管,该设置没有我的配置,也没有我的知识。 (!?)当然,他们会为这个桶收费,但是,嘿,免费域名蹲!接下来你知道,他们冒充我,窃取客户,谁知道?

因此,红旗:请注意通配符重定向未提供资源的影响。另一方面,如果您想要重定向所有内容(并且您采取措施确保目标真的是无用的主机名的秘密终端),那么EC2实例将不会是一个不好的交易。 t2.micro可以轻松地为每天的数十万轻量级请求(例如重定向)提供服务(我有一个每天处理超过30万次且总是拥有备用CPU信用额的应用程序),价格为< $ 10 /月。