Linux 如何通过URI让haproxy使用特定的群集计算机

Linux 如何通过URI让haproxy使用特定的群集计算机,linux,load-balancing,haproxy,Linux,Load Balancing,Haproxy,我已在服务器群集上成功设置haproxy。我遇到了一个无法解决的问题 测试单个群集计算机 由于某种原因,集群中的一台计算机可能会得到配置变化。我找不到方法告诉haproxy我想使用集群外的特定计算机 基本上,mysite.com(以及其他几个域)由框web1、web2和web3提供服务。他们完美地循环 我想在URL中添加一些内容,告诉haproxy我特别想与web2对话,因为在特定情况下,只有服务器在一个网页上抛出错误 有人知道如何在不使用URI过滤器构建新集群的情况下做到这一点,并且该集群中只

我已在服务器群集上成功设置haproxy。我遇到了一个无法解决的问题

测试单个群集计算机

由于某种原因,集群中的一台计算机可能会得到配置变化。我找不到方法告诉haproxy我想使用集群外的特定计算机

基本上,mysite.com(以及其他几个域)由框web1、web2和web3提供服务。他们完美地循环

我想在URL中添加一些内容,告诉haproxy我特别想与web2对话,因为在特定情况下,只有服务器在一个网页上抛出错误

有人知道如何在不使用URI过滤器构建新集群的情况下做到这一点,并且该集群中只有一台计算机吗?我希望按原样使用集群,但在URI中添加一些东西,告诉haproxy在集群外使用哪台服务器


谢谢

您是否想过为此使用不同的端口?用不同的端口定义新的侦听部分,因为据我所知,您可以通过任何方式修改URL?

基本上,haproxy无法实现我的期望。无法向URL添加参数来建议使用集群中的哪个主机

我通过在防火墙处为集群中的每台服务器设置唯一端口来解决测试问题。这也可以在haproxy水平上完成

为了从外部世界保护这条路径,我告诉防火墙只接受来自我们自己网络内部的流量

这使我们能够测试集群中的特定服务器。我们确实需要在PHP应用程序中添加一个陷阱来处理太大的会话cookie,因为我们让haproxy操纵这个cookie,让用户留在他们第一次访问的服务器上。因此,当检测到无效会话cookie时,我们让页面简单地删除会话并重新加载页面


这对于我们的测试来说效果很好。

现在,我正在使用防火墙上的备用端口来绕过haproxy并点击所需的框。我想我可以在haproxy级别上做同样的事情,但是我必须为每个端口创建一个单独的集群,不是吗?我希望有一些URL技巧可以建议集群中的一个框。但是,如果该框实际关闭,该变量将被自动忽略。就像饼干一样。即使有一块饼干说要用盒子3,如果盒子坏了,haproxy也会改成一个可用的盒子。据我所知,你不能这样做。Haporxy只监听给定端口,并根据您选择的算法平衡流量。您可以尝试在haproxy之前使用nginx,这将把默认URl传递给haproxy,并将修改后的请求传递给特定的服务器,但这需要在nginx级别上巧妙地使用角色定义。可能吗?我不确定,但应该是。您的问题解决方案不必像您所说的那样具有如此大的可伸缩性,它只是出于测试的原因