服务结构URL路由

时间:2016-05-20 11:51:22

标签: azure load-balancing azure-service-fabric

我正在使用Azure负载均衡器和Azure服务结构来托管多个自主主机Web应用程序,我想创建一个允许我根据用户URL请求进行路由的规则。

例如,如果用户导航到:

http:// domain.com/Site1然后规则将路由到: 群集中的http:// domain.com**:8181**/Site1

如果用户导航到:

http:// domain.com/Site2然后规则将路由到: 群集中的http:// domain.com**:8282**/Site2

天蓝色服务面料/负载均衡器是否可以实现这一目标?

1 个答案:

答案 0 :(得分:2)

Azure负载均衡器仅将其在端口上接收的流量转发到另一个端口上的群集中的节点(可以是同一端口或不同的内部端口)。它在第4层(TCP,UDP)上运行,因此它不知道有关HTTP或URL的任何信息(尽管它允许HTTP探测)。

以下是多个网站的几个选项:

如果您希望您的网站内部托管在不同的端口(8181和8282)上,那么您还需要其他东西来进行URL路由。 Azure流量管理器或Azure应用程序网关是可以在群集外部运行的可能选项。您的Azure负载均衡器需要为每个网站打开一个端口,但这样做的好处是可以在专用节点上运行您的网站,ALB会根据打开的端口自动将流量路由到相应的节点。

或者,您可以设置在群集内运行的自己的无状态路由服务。

或者您可以完全跳过路由,只需在80/443端口上托管您的所有网站。只要您使用基于http.sys的Web主机(包括Katana,ASP.NET Core 1 WebListener或您在HttpListener上构建的任何内容),您就可以为所有网站使用相同的端口并让底层http服务器路由根据URL路径或主机名,两者都受支持。