Azure - 在同一个云服务中使用每个Web角色的子域

时间:2013-10-31 17:29:53

标签: azure dns azure-web-roles

我创建了一个包含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

2 个答案:

答案 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.aspxhttp://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?