如何 redirect/rewrite URL 使用 HAProxy(更改上下文路径)
How to redirect/rewrite URL using HAProxy (change context path)
此问题与 HAProxy 1.4.27 有关。
我有一个可以使用上下文路径“/foo/foobar?...”访问的应用程序,如下所示:
http://www.myserver.com/foo/foobar
or
http://www.myserver.com/foo/foobar/showDetails.do?id=1002
上下文路径最近已更改为“/foobar”,但用户已将旧网址添加为书签。我试图使用 haproxy.cfg 中的 'redirect' 配置将用户重定向到新上下文,但这仅在 url 完全匹配时才有效。有没有办法配置 haproxy.cfg 重定向到
http://www.myserver.com/foobar
or
http://www.myserver.com/foobar/showDetails.do?1002
这是我正在使用的重定向配置:
redirect location /foobar/ if { url /foo/foobar/}
我也尝试使用 'reqirep',但无法正确配置它(haproxy 进程在尝试重新启动时抛出错误)。
在这方面的任何帮助将不胜感激。
显然,版本 1.4.2x 不支持 URL 重写(即使 URL 重定向在服务器端使用 'reqirep' 工作)。我们将升级到支持该功能的版本 1。5.x。
发布此答案,以帮助遇到相同情况的人。
此问题与 HAProxy 1.4.27 有关。 我有一个可以使用上下文路径“/foo/foobar?...”访问的应用程序,如下所示:
http://www.myserver.com/foo/foobar
or
http://www.myserver.com/foo/foobar/showDetails.do?id=1002
上下文路径最近已更改为“/foobar”,但用户已将旧网址添加为书签。我试图使用 haproxy.cfg 中的 'redirect' 配置将用户重定向到新上下文,但这仅在 url 完全匹配时才有效。有没有办法配置 haproxy.cfg 重定向到
http://www.myserver.com/foobar
or
http://www.myserver.com/foobar/showDetails.do?1002
这是我正在使用的重定向配置:
redirect location /foobar/ if { url /foo/foobar/}
我也尝试使用 'reqirep',但无法正确配置它(haproxy 进程在尝试重新启动时抛出错误)。
在这方面的任何帮助将不胜感激。
显然,版本 1.4.2x 不支持 URL 重写(即使 URL 重定向在服务器端使用 'reqirep' 工作)。我们将升级到支持该功能的版本 1。5.x。
发布此答案,以帮助遇到相同情况的人。