HaProxy 自定义端口

HaProxy 自定义端口

我需要对我们客户的一个应用程序门户进行负载平衡。流程如下:

  1. 最终用户通过 URL example.net:3000/login page 到达门户;

  2. 最终用户将从四个可能的门户租户中选择一个,每个租户都有一个专用的自定义端口(例如端口:3012、:3013、:3014、:3015);

  3. 一旦用户成功登录,应用程序将自动首先执行路径重写到 example.net:3000/auth/login(并管理登录),然后使用 302 状态代码重定向到路径 example.net:3000/redirect/,最后更改专用的自定义后端端口,用户将进入门户(例如到 example.net:3012)。

我正在使用 HaProxy v2.4.22。

我已经设法执行了基本操作,例如通常的 HTTP 到 HTTPS 重定向并添加 /login 路径,以便我能够正确查看登录页面。

关于前面描述的第 3 点,我想了解是否有可能捕获 302 状态并将流重定向到正确的后端。

我也尝试过类似“http 请求重定向位置https://example.net:3000code 302 if { status 302 } { path /redirect/ }”但解决方案似乎不起作用。

任何帮助都将非常感激!

太感谢了!

答案1

要根据状态和路径进行重定向,您可能需要在收到响应后使用 http-response 而不是 http-request 进行后期处理。以下是示例:

http-response redirect code 302 location %[capture.req.hdr(Host)]/redirect/ if { status 302 } { path /login }

相关内容