我的天蓝色解决方案中有三个不同的 webrole。它们都部署到 xyz.cloudapp.net:
webrole 1 at port 81
webrole 2 at port 82
webrole 3 at port 83
要访问 webrole 2,我需要 url xyz.cloudapp.net:82。我注意到 url 中的端口被某些防火墙阻止,所以我想摆脱该端口。
排除 url 中需要端口的最佳方法是什么?
看一眼:
http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role/
http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-Episode-37-Multiple-Websites-in-a-Web-Role
您应该能够使用主机标头和 CNAME 映射来做到这一点。但不确定您是否可以使用 cloudapp.net URL。
几个选项。最简单的方法是更改您的网络角色,以便他们每个人都有自己的服务/部署。这意味着您可以在端口 80 上运行它们,并且它们将拥有自己的 url,例如 xyz.cloudapp.net、xyztwo.cloudapp.net、xyzthree.cloudapp.net。它的副作用是更容易单独部署它们。
如果您有一个用于您的应用程序的域,例如 xzy.com,那么您可以将所有三个Web 角色设置为一个 Web 角色下的站点,使用主机标头来区分它们。然后,您可以为 www.xyz.com、two.xyz.com、three.xyz.com 添加 CNAME,全部指向 xyz.cloudapp.net。
实际上,您也可以使用具有多个实例的单个 Web 角色。然后工作负载将平均分配给这些实例。如果您只有一个代码库,最好的选择是使用具有多个实例的单个 Web 角色。他们可以使用负载均衡器上的单个端口 80。如果您对不同的应用程序有不同的要求,那么请多个角色。在这种情况下,您可以将它们托管在不同的托管服务中(因此它们使用不同的域名但可以使用相同的端口),或者如 knighpfhor 指出的那样将它们托管在相同的托管服务中。
此致,
明旭。