将HAProxy路由到使用相同URI路径的不同后端端口

时间:2020-01-30 19:23:24

标签: proxy configuration reverse-proxy haproxy

我有几个运行在不同端口上的服务,每个服务都使用相同的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上发布了这个问题,因为它似乎更适合于这个问题:

https://serverfault.com/questions/1001237/haproxy-need-to-add-a-url-parameter-to-acl-to-differentiate-between-services-w

我已投票结束该问题。

0 个答案:

没有答案