Answers:
我遇到了Saurav所描述的完全相同的问题,但是我确实需要找到一个不需要Route 53和S3的解决方案。我为博客创建了操作指南,详细说明了我的所作所为。
这是我想出的。
仅使用Amazon S3和Amazon Route 53中可用的工具,创建URL重定向,该URL自动将http://url-redirect-example.vivekmchawla.com转发到别名为“ MyAccount”的位于https的AWS控制台登录页面。://myaccount.signin.aws.amazon.com/console/。
本指南将教您将URL转发设置为任何URL,而不仅仅是Amazon的URL。您将学习如何设置转发到特定文件夹(在我的示例中为“ / console”),以及如何将重定向协议从HTTP更改为HTTPS(反之亦然)。
打开S3管理控制台,然后单击“创建存储桶”。
选择一个存储桶名称。这一步真的很重要!您必须将存储桶命名为与要设置用于转发的URL完全相同的名称。在本指南中,我将使用名称“ url-redirect-example.vivekmchawla.com”。
选择最适合您的区域。如果您不知道,请保留默认值。
不用担心设置日志记录。准备就绪后,只需单击“创建”按钮。
完整粘贴以下XML代码段。
<RoutingRules>
<RoutingRule>
<Redirect>
<Protocol>https</Protocol>
<HostName>myaccount.signin.aws.amazon.com</HostName>
<ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
如果您对以上XML的功能感到好奇,请访问AWM文档中的“指定路由规则的语法”。例如,奖励技术(此处未涵盖)正在转发到目标主机上的特定页面http://redirect-destination.com/console/special-page.html
。<ReplaceKeyWith>
如果需要此功能,请阅读有关元素的信息。
记下Amazon为此存储桶自动创建的静态网站托管“端点”。您稍后将需要它,因此突出显示整个URL,然后将其复制并粘贴到记事本中。
警告!此时,您实际上可以单击此链接来检查是否正确输入了“重定向规则”,但要小心!这就是为什么
假设您<Hostname>
在重定向规则的标签内输入了错误的值。也许您不小心输入了myaccount.amazon.com
而不是myaccount.signin.aws.amazon.com
。如果您单击链接来测试端点URL,AWS会很高兴将您的浏览器重定向到错误的地址!
注意到您的错误后,您可能会<Hostname>
在“重定向规则”中修改来修复该错误。不幸的是,当您再次尝试单击链接时,很可能最终将其重定向回错误的地址!即使您修复了该<Hostname>
条目,您的浏览器仍在缓存先前的(不正确!)条目。发生这种情况是因为我们使用的是HTTP 301(永久)重定向,默认情况下,Chrome和Firefox等浏览器会缓存该重定向。
如果将端点URL复制并粘贴到其他浏览器(或清除当前浏览器中的缓存),则将有另一种机会查看更新后的<Hostname>
条目最终是否正确。
为了安全起见,如果您要测试“端点URL”和“重定向规则”,则应打开一个私有浏览会话,例如Chrome中的“隐身模式”。在隐身模式下复制,粘贴和测试端点URL,一旦关闭会话,缓存的所有内容都会消失。
单击“创建记录集”将在Route53管理控制台的右侧打开“创建记录集”窗口。
在名称字段中,输入命名S3存储桶时使用的URL的主机名部分。URL的“主机名部分”是您托管区域名称的左起所有内容。我将S3存储桶命名为“ url-redirect-example.vivekmchawla.com”,而我的托管区域是“ vivekmchawla.com”,因此我需要输入的主机名部分是“ url-redirect-example”。
为此记录集的类型选择“ CNAME-规范名称”。
对于值,请粘贴我们在步骤3中创建的S3存储桶的端点URL。
单击“创建记录集”按钮。假设没有错误,您现在将能够在“托管区域”的“记录集”列表中看到新的CNAME记录。
打开一个新的浏览器选项卡,然后输入我们刚刚设置的URL。对我来说,这是http://url-redirect-example.vivekmchawla.com。如果一切正常,则应将您直接发送到AWS登录页面。
因为我们使用myaccount.signin.aws.amazon.com
别名作为重定向的目标URL,所以Amazon确切知道我们要访问哪个帐户,并将我们直接带到那里。如果您想为员工或承包商提供简短,干净的品牌AWS登录链接,这将非常方便。
我个人喜欢各种AWS服务,但是如果您决定将DNS管理迁移到Amazon Route 53,则缺少简单的URL转发可能会令人沮丧。希望本指南可以帮助您轻松设置托管区域的URL转发。
如果您想了解更多信息,请查看AWS文档站点中的以下页面。
干杯!
AWS支持提供了一个更简单的解决方案。它与@Vivek M. Chawla提出的基本相同,只是实现更为简单。
AWS S3:
aws.example.com
Redirect all requests to another host name
并输入您的URL:
https://myaccount.signin.aws.amazon.com/console/
AWS Route53:
Yes
。单击Alias
Target
字段,然后选择在上一步中创建的S3存储桶。参考:如何使用Amazon Web Services重定向域
AWS官方文档:是否可以使用Amazon Route 53将域重定向到另一个域?
Redirect all requests to another host name
选项还存在吗?转到存储桶属性时看不到它。
我能够使用nginx处理301重定向到aws登录页面。
转到您的nginx conf文件夹(在我的情况下/etc/nginx/sites-available
,我在其中/etc/nginx/sites-enabled
为启用的conf文件创建符号链接)。
然后添加重定向路径
server {
listen 80;
server_name aws.example.com;
return 301 https://myaccount.signin.aws.amazon.com/console;
}
如果您使用的是nginx,则很可能会有其他服务器块(apache术语中的虚拟主机)来处理区域顶点(example.com),或者您已经设置了它。确保已将其中之一设置为默认服务器。
server {
listen 80 default_server;
server_name example.com;
# rest of config ...
}
在Route 53中,添加A record
for aws.example.com
并将其值设置为用于区域顶点的IP。
虽然我的下面原来的答复仍然是有效的,并可能有助于了解通过不是可用的基于DNS URL转发事业亚马逊路线53开箱,我强烈建议检查出维韦克M.乔拉的完全智能间接解决方案通过同时推出Amazon S3对网站重定向的支持减少了实现自助式服务器的次数,因此仅在AWS内提供免费的解决方案。
Nettica必须为此运行定制的重定向解决方案,这是问题所在:
您可以创建一个CNAME别名一样aws.example.com
的myaccount.signin.aws.amazon.com
,但是,DNS提供了一个别名子目录一样,没有官方的支持,console
在这个例子中。
https://myaccount.signin.aws.amazon.com/
(我刚刚尝试过)默认情况下简单地执行此操作,因为它可以立即解决您的问题,并且从一开始就很有意义。此外,配置它们的一端应该很容易。因此,一些DNS提供商显然已经实现了自定义解决方案,以允许重定向到子目录。我猜测他们基本上是在为自己的域提供CNAME别名,并通过即时HTTP 3xx重定向从那里再次重定向到最终目的地。
因此,要获得相同的结果,您需要使HTTP服务运行以执行这些重定向,这当然不是一个希望的简单解决方案。也许/希望有人仍然可以提出一种更明智的方法。