如何根据 url 负载均衡 Http 流量

How to load balance Http traffic based on url

我们使用HttpServers (bundled with java)的集群来处理http请求。我们的流量中有一定比例是至关重要的。我们根据一些请求参数将我们的 http 流量分类为关键和非关键。

我们想将一些 HTTP 服务器专用于关键流量。将 http 请求识别为 critical/non-critical 并将请求路由到适当服务器的最佳方法是什么?

  1. 是否可以在不通知调用者(谁调用了 http 请求)的情况下将 http 请求路由到适当的服务器。

  2. 我知道我们可以使用 http 3xx 响应代码重定向调用者。来电者必须再打一个电话 - 是否可以避免这种情况?

大多数 firewalls/loadbalancers 将允许您相应地检查交通和路线。我们使用 F5 执行此操作,并使用规则将 HTTP 流量路由到基于特定 HTTP headers 的服务器池:https://devcentral.f5.com/irules

如果这不是一个选项,您总是设置一个负载平衡器,例如 nginx (http://nginx.org/en/#basic_http_features),并使用您的 URL 路径进行优先级排序。例如,所有呼叫 http://domain.com/api 都被路由到一组服务器,而 http://domain.com/static 被路由到另一组服务器。