如何配置 Haproxy 以根据 HTTP 请求正文(而不是标头)中的内容选择后端?

如何配置 Haproxy 以根据 HTTP 请求正文(而不是标头)中的内容选择后端?

Haproxy 似乎提供了很多在 HTTP 请求标头(和 URL 等)上进行内容切换的功能。但是,我正在寻找一种解决方案,可以根据 HTTP 请求主体中的字符串(在 SOAP 数据包中)的匹配来选择后端。

有谁能解决这个问题吗?

答案1

从“匹配第 7 层”部分来看,这似乎是不可能的配置文档。您可能能够使用有效载荷功能来实现这一点,但我从未尝试过,而且听起来它是为会话粘性而设计的:

payload(offset,length) 这将提取一个二进制字节块,从请求或响应缓冲区中的字节开始(“stick on”或“stick match”上的请求或“stick store response”上的响应)。

话虽如此,这对我来说似乎是一件奇怪的事情。必须从有效载荷中提取数据似乎会占用大量处理器。对我来说,这似乎也是一种非标准的做法。如果这是真的,即使 haproxy您是否最终将 haproxy 设为应用程序的依赖项(尽管我是 HAProxy 的忠实粉丝,但这绝不是一个好主意)。您可以轻松地从 URL 请求、标头和 cookie 中提取值。因此,如果您解释为什么要考虑此解决方案,我们可能会为您提供更多帮助。

相关内容