我可以设置从一个子域级别到更高子域的CNAME catch-all重定向吗?

时间:2015-07-24 18:27:00

标签: amazon-web-services nginx cname amazon-route53

我为Route53 for AWS中的环境设置了数百个子域,如下所示:

argv[0]

问题是我们的制作内部网址缺少网址中的'prod'env,这需要我们在所有配置脚本中添加条件,例如:

如果'prod。'在网址中:    url = url.substring('prod。','')

我想要的是:

<appX>.dev.internalurl.us
<appX>.qa.internalurl.us
<appX>.pt.internalurl.us
<appX>.internalurl.us

编辑:

我添加了一个CNAME来将prod.internalurl.us路由到internalurl.us,如下所示:

* .prod.internalurl.us&gt; internalurl.us

但是这显然不起作用,因为我需要通配符上的捕获组!它忽略了第一个“appX”子域。

我不想输入数百个CNAMES,所以我正在为其父级寻找一个子域级别的全部重定向。

有没有办法用CNAME执行此操作,还是需要在prod.internalurl.us上运行nginx代理才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

可能有用的解决方案很简单。要找到它,让我问一个问题。为什么在DNS级别上需要此功能?

  

我想要的是:

     

.prod.internalurl.us转到.internalurl.us   自动。

CNAME对条件URL重写没有帮助,该层上没有这样的逻辑。有用的是HTTP层301重定向可以通过Nginx管理:

server {
  server_name  ~^(?<app>.+)\.prod\.internalurl\.us$;
  return       301 http://$app.internalurl.us$request_uri;
}

没有代理,而是HTTP 301重定向。