【问题标题】:service fabric URL routing服务结构 URL 路由
【发布时间】:2016-09-17 16:18:25
【问题描述】:

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

例如,如果用户导航到:

http:// domain.com/Site1 那么规则将路由到: http:// domain.com**:8181**/Site1集群内

如果用户导航到:

http:// domain.com/Site2 那么规则将路由到: http:// domain.com**:8282**/Site2集群内

Azure 服务结构/负载均衡器可以做到这一点吗?

【问题讨论】:

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


    【解决方案1】:

    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 路径或主机名进行路由,两者都受支持。

    【讨论】:

    • 谢谢,最后我选择了最后一个解决方案,这似乎是最简单的方法,并在 .barcode 应用程序中使用了 WebListener。
    • 能否详细说明选项 2?
    • host all of your websites on port 80/443 如果你在 weblistener 中使用这样的方法:matt.kotsenas.com/posts/https-in-service-fabric-web-api 当你要更改证书(例如更新)时,你必须关闭所有在安全端口上侦听的服务否则你会遇到 443 与旧证书一起使用的问题,然后新证书尝试在 443 上使用新证书。这会导致失败。
    • 我正在使用github.com/c3-ls/ServiceFabric-Http/wiki/HTTP-Gateway,这很棒,因为它在 SF 中运行。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2010-12-24
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2012-03-23
    • 1970-01-01
    相关资源
    最近更新 更多