1

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

4

1 回答 1

2

这里有几个选项:

  • 在同一个 WebRole 上运行所有 Web 应用程序并使用主机标头允许通过使用主机标头(例如 api.mysite.com)访问每个 Web 应用程序。除了主机头之外,您还可以将虚拟目录添加到主 Web 应用程序 (mysite.com/api)。更多信息:如何为多个网站配置 Web 角色。(这可能不是您正在寻找的解决方案,因为您想独立扩展 Web 应用程序
  • 使用不同的云服务。您不能将同一端点(例如端口 80)用于同一云服务中的多个角色。如果您希望多个 Web 角色使用相同的端点,您需要将它们拆分到多个云服务中。这将允许您独立扩展实例,并通过为每个云服务使用 CNAME,您可以拥有如下内容:mysite.cloudapp.net => www.mysite.commysiteadmin.cloudapp.net => admin.mysite.commysiteapi.cloudapp.net => api.mysite.com。使用ARR,您甚至可以使用像www.mysite.com/api这样的虚拟目录并将请求路由到 api.mysite.com
  • 创建 3 个 WebRole:MySiteWebRole、ApiWebRole、AdminWebRole。MySiteWebRole 将有一个输入 Http 端点(端口 80),而其他的将使用另一个端口(输入,以使用负载均衡器)。在 MySiteWebRole 上使用 ARR,您可以将请求重定向到 ApiWebRole 和 AdminWebRole。示例:对 api.mysite.com 的所有请求都将使用 ARR 路由到 mysite.cloudapp.net:5838。
于 2012-09-12T21:54:26.900 回答