MVC4和多个windows azure web角色

时间:2012-09-12 21:34:33

标签: asp.net-mvc azure asp.net-mvc-4 azure-web-roles

我的MVC4项目中有2个Web角色,并希望设置路由,以便所有对www.mysite.com/api/的请求都应该路由到roleA,并且任何其他请求都应该路由到roleB。 (这样的设置的原因是我们可以独立扩展api或UI角色实例,如果需要,请感到诋毁这个想法) 此外,如果我有第三个webrole作为mysite.com的子域托管,即admin.mysite.com,我可以将请求从www.mysite.com/admin路由到admin.mysite.com。如果是这样,是否有关于如何设置开发环境的指导。

1 个答案:

答案 0 :(得分:2)

这里有几个选项:

  • 在同一个WebRole上运行所有Web应用程序并使用主机标头允许通过使用主机标头(例如api.mysite.com)访问每个Web应用程序。除了主机头之外,您还可以将虚拟目录添加到主Web应用程序(mysite.com/api)。更多信息:How to Configure a Web Role for Multiple Web Sites。 (这可能不是您正在寻找的解决方案,因为您希望独立扩展Web应用程序
  • 使用不同的云服务。您不能在同一个云服务中为多个角色使用相同的端点(例如端口80)。如果您希望使用相同端点的多个Web角色,则需要将这些角色分配到多个云服务上。这将允许您独立扩展实例,并为每个云服务使用CNAME,您可以使用以下内容: mysite.cloudapp.net => www.mysite.com mysiteadmin.cloudapp.net => admin.mysite.com mysiteapi.cloudapp.net =>的 api.mysite.com 即可。使用ARR,您甚至可以使用 www.mysite.com/api 等虚拟目录,并将请求路由到api.mysite.com
  • 创建3个WebRoles:MySiteWebRole,ApiWebRole,AdminWebRole。 MySiteWebRole将具有输入Http端点(端口80),而其他端口将使用另一个端口(输入,以便使用负载平衡器)。在MySiteWebRole上使用ARR,您可以将请求重定向到ApiWebRole和AdminWebRole。示例:所有对api.mysite.com的请求都将使用ARR路由到mysite.cloudapp.net:5838。