我创建了一个包含2个网络角色的云服务(一个是“公共”网站,另一个是“管理员后端”)。
我在azure中部署了解决方案,并创建了具有Web角色的云服务。我可以使用以下方式访问这两个站点:
前端
http://my-app.cloudapp.net:80/
后端
http://my-app.cloudapp.net:8080/
问题出在这里:我想将后端作为主站点的子域进行访问。我尝试更新使用CNAME播放的DNS(GoDaddy),但由于似乎我无法使用端口号,因此无法找到解决方案。一种解决方案可能是创建2个云服务,每个服务只有一个Web角色(当然,都使用端口80);但由于业务需求,这不是一个好主意。有什么想法吗?
FWIW,这就是我想要的:
前端
http://my-app.com
后端
http://dashboard.my-app.com
答案 0 :(得分:1)
您应该可以add two CNAMES or A-records使用您的主机名,指向同一个站点/端口。然后,您可以使用URL rewriting将主机名映射到不同的目录,例如(未经测试的);
<rewrite>
<rules>
<rule name="Dashboard rewrite" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^dashboard\.my-app\.com$" />
</conditions>
<action type="Rewrite" url="http://my-app.com/dashboard/{R:0}" />
</rule>
</rules>
</rewrite>
这将/应重写http://dashboard.my-app.com/test.aspx
对http://my-app.com/dashboard/test.aspx
的访问权限,给浏览器留下两个独立应用程序的印象。
答案 1 :(得分:0)
使用DNS CNAME,您只能从一个主机名指向另一个主机名。端口号是完全不同的项目。
您可以安装HTTP反向代理服务器以将请求转发到正确的云服务。 (例如HAProxy,nginx,IIS ARR等)。在这个SO问题中有一些解决方案:How do I create a reverse proxy that runs in Azure?