我有几个运行在不同端口上的服务,每个服务都使用相同的URI路径。例如:
New York Housing Service
127.0.0.1:8080/homes
127.0.0.1:8080/prices
Las Vegas Housing Service
127.0.0.1:8081/homes
127.0.0.1:8081/prices
到目前为止,这还不错,但是我现在需要设置haproxy来平衡服务的负载。因此,我显然需要能够区分它们以进行内容切换。我想我会做的是在ACL中的路径中添加一个参数,以区分两个后端,在这种情况下,通过在ACL中具有url参数,然后是应用程序的实际路径参数:>
frontend http
maxconn 2000
bind 0.0.0.0:5000
acl new-york path_reg -i /newyork.*
use_backend nyc-server if new-york
acl las-vegas path_reg -i /lasvegas.*
use_backend lv-server if las-vegas
backend nyc-server
server www.test.com 127.0.0.1:8080 maxconn 100
backend lv-server
server www.test.com 127.0.0.1:8081 maxconn 100
在此设置中,转到127.0.0.1:5000/newyork/home会将我带到127.0.0.1:8080/home,而将127.0.0.1:5000/lasvegas/home带我到127.0.0.1:8081/home。到目前为止,我的尝试仅返回了404错误。我一直在浏览文档,但是没有看到与我的用例完全匹配的内容,因此任何帮助将不胜感激。
编辑: 我忘了提到我正在使用haproxy 1.5.18
EDIT2: 我已经在serverfault.com上发布了这个问题,因为它似乎更适合于这个问题:
我已投票结束该问题。