我试图使用HAProxy作为基于部分/path正则匹配的后端主机的动态代理。用例是从HTTPS前端路由到大量频繁进出的节点,而不维护/path到服务器主机名的显式映射。
具体来说,在这种情况下,节点是Amazon集群的成员,我想反向代理/重写HTTP请求,例如:
<haproxy>/emr/ip-99-88-77-66:4040 -> 99.88.77.66:4040
<haproxy>/emr/ip-55-44-33-22/ganglia -> 55.44.33.22/ganglia
<haproxy>/emr/ip-11-11-11-11:8088/cluster/nodes -> 11.11.11.11:8088/cluster/nodes
...etc
动态的。
作为输入,解析从/emr开始的路径和对regex捕获的IP的代理请求:
emr\/ip-(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3})(.*)
这与HAProxy是可能的吗?我知道它可能不是适合这项工作的工具,但是如果可能的话(甚至是不表现的),我想使用我们已经具备的工具。
tl;博士基本上是nginx proxy_pass
,但是HAProxy和从url中提取后端IP。
谢谢!
发布于 2019-02-01 16:47:40
是的,通过在haproxy中使用url过滤器是可能的,有关更多细节,请参见下面的链接。https://fossies.org/linux/haproxy/doc/internals/filters.txt
发布于 2019-02-02 13:19:58
是的这是可以做到的。我建议您使用ACL,以及Roundrobin & check,这将允许您在进行检查之前检查该实例是否已打开。这样,系统只会路由到正在启动和运行的实例,并且只有在它们启动时才会预加载它们以供使用。
此外,这还允许您不断地循环实例,例如如果您的AWS实例成本与您可能拥有的任何其他提供者之间发生了变化,并且允许您在考虑最大限度节省成本的情况下进行负载平衡。
发布于 2019-02-05 01:03:24
是的,这是可能的。检查官方手册:
使用ACL和获取样本
https://stackoverflow.com/questions/54470366
复制相似问题