在Amazon Route53中设置基于DNS的URL转发

在Amazon Route53中设置基于DNS的URL转发,dns,forwarding,amazon-route53,Dns,Forwarding,Amazon Route53,我正在尝试在Amazon Route53中设置转发。我的上一个DNS服务(Nettica)允许我将请求路由到“aws.example.com”以https://myaccount.signin.aws.amazon.com/console/“ Route53是否支持此功能 奈蒂卡是如何做到这一点的?它是否插入特殊的a、CNAME、PTR或TXT记录?更新 虽然我下面的原始答案仍然有效,并且可能有助于理解基于DNS的URL转发无法通过开箱即用的原因,但我强烈建议您通过同时引入的Vivek M.Ch

我正在尝试在Amazon Route53中设置转发。我的上一个DNS服务(Nettica)允许我将请求路由到“aws.example.com”以https://myaccount.signin.aws.amazon.com/console/“

Route53是否支持此功能

奈蒂卡是如何做到这一点的?它是否插入特殊的a、CNAME、PTR或TXT记录?

更新 虽然我下面的原始答案仍然有效,并且可能有助于理解基于DNS的URL转发无法通过开箱即用的原因,但我强烈建议您通过同时引入的Vivek M.Chawla,并在AWS内实现一个独立的无服务器免费解决方案

  • 实现自动解决方案以生成此类重定向留给读者作为练习,但请通过发布您的解决方案向Vivek的史诗般回答致敬;)

原始答案 Nettica必须为此运行自定义重定向解决方案,问题如下:

您可以为
myaccount.signin.aws.amazon.com
创建CNAME别名,如
aws.example.com
,但是,在本例中,DNS不提供对子目录(如
console
)别名的官方支持

  • 遗憾的是,AWS在点击
    https://myaccount.signin.aws.amazon.com/
    (我刚试过),因为它会马上解决你的问题,而且一开始就很有意义;此外,它应该很容易配置在他们的端
出于这个原因,一些DNS提供商显然已经实现了一个自定义解决方案,允许重定向到子目录;我大胆猜测,他们基本上是在为自己的域提供一个CNAME别名,并通过即时消息再次从该域重定向到最终目的地


因此,为了获得相同的结果,您需要运行一个HTTP服务来执行这些重定向,这当然不是人们希望的简单解决方案。也许/希望有人能想出一个更聪明的方法。

我能够使用nginx处理301重定向到aws登录页面

转到您的nginx conf文件夹(在我的示例中,它是
/etc/nginx/sites available
,我在其中为启用的conf文件创建一个指向
/etc/nginx/sites enabled
的符号链接)

然后添加重定向路径

server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.amazon.com/console;
}
如果您使用的是nginx,那么很可能会有额外的服务器块(apache术语中的virtualhosts)来处理zone apex(example.com),或者按照您的方式进行设置。确保将其中一个设置为默认服务器

server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}

在Route 53中,为aws.example.com添加一条记录,并将该值设置为用于区域顶点的相同IP。

我遇到了与Saurav描述的完全相同的问题,但我确实需要找到一个除了Route 53和S3之外不需要任何其他东西的解决方案。我为我的博客创建了一个操作指南,详细说明了我所做的事情

这是我想到的


客观的 仅使用Amazon S3和Amazon Route 53中提供的工具,创建一个URL重定向,自动转发到AWS控制台登录页面,别名为“MyAccount”,位于

本指南将教您设置URL转发到任何URL,而不仅仅是来自Amazon的URL。您将学习如何设置到特定文件夹的转发(如我的示例中的“/console”),以及如何将重定向协议从HTTP更改为HTTPS(反之亦然)


第一步:创建S3存储桶

打开S3管理控制台,点击“创建Bucket”


第二步:命名S3 Bucket

  • 选择一个Bucket名称。这一步真的很重要!您必须将bucket命名为与要设置用于转发的URL完全相同的名称。在本指南中,我将使用名称“url redirect example.vivekmchawla.com”

  • 选择最适合您的区域。如果您不知道,请保留默认值

  • 不要担心设置日志记录。准备好后,只需单击“创建”按钮


  • 步骤3:启用静态网站托管并指定路由规则

  • 在“属性”窗口中,打开“静态网站托管”的设置
  • 选择“启用网站托管”选项
  • 为“索引文档”输入一个值。S3永远不会提供此对象(文档),并且您永远不必上传它。随便你叫什么名字都行
  • 打开“编辑重定向规则”的设置
  • 完整粘贴以下XML片段

    <RoutingRules>
      <RoutingRule>
        <Redirect>
          <Protocol>https</Protocol>
          <HostName>myaccount.signin.aws.amazon.com</HostName>
          <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
          <HttpRedirectCode>301</HttpRedirectCode>
        </Redirect>
      </RoutingRule>
    </RoutingRules>
    
    
    https
    myaccount.signin.aws.amazon.com
    控制台/
    301
    
  • 如果您对上述XML的作用感到好奇,请访问。一种额外的技术(此处未涉及)是转发到目标主机上的特定页面,例如
    http://redirect-destination.com/console/special-page.html
    。如果需要此功能,请阅读
    元素


    步骤4:记下重定向桶的“端点”

    注意Amazon为这个bucket自动创建的托管“端点”的静态网站。稍后您将需要这个,所以突出显示整个URL,然后将其复制并粘贴到记事本

    小心此时,您实际上可以单击此链接检查重定向规则输入是否正确,但请小心!这就是为什么

    假设您在重定向规则的
    标记中输入了错误的值。也许你不小心输入了
    myaccount.amazon.com
    ,而不是
    myaccount.sign.aws.amazon.com
    。如果您单击链接测试端点URL,AWS会很高兴地将您的浏览器重定向到错误的地址

    注意到错误后,您可能会编辑重定向规则中的
    ,以修复错误