我为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代理才能使其正常工作?
答案 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重定向。