【问题标题】:haproxy balance uri depthhaproxy 平衡 uri 深度
【发布时间】:2014-09-04 12:39:20
【问题描述】:

我的 haproxy 配置有一个大问题。我有网址:

http://domain.com/some-text/?9/3/90/custom/184/2256184/2.jpg<br>

目标是 Haproxy 应该始终在同一个网络服务器上发送具有相同 ID(例如 2256184)的 url。

我尝试了参数“balance uri depth 8”,但它不起作用。有人知道如何解决这个问题吗?

我的 haproxy 1.5 配置:

global
   log /dev/log    local0 debug
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    maxconn 5000

defaults
    log     global
    mode    http
    option  httplog
    option forwardfor       
    option http-server-close
    option  dontlognull
    timeout connect 5s
    timeout client 25s
    timeout server 25s

frontend http-frontend
    bind 0.0.0.0:80
    mode http
    maxconn 50000
    default_backend webfarm

backend webfarm
    mode http
    balance uri depth 8
    option forwardfor
    hash-type consistent
    server webmember01 192.168.10.22:80 weight 50 check
    server webmember02 192.168.10.23:80 weight 50 check

【问题讨论】:

    标签: haproxy balance


    【解决方案1】:

    您的 URL 示例仅包含 7 个目录。 我猜 HAProxy 会回退到默认的 LB 算法,即循环。

    巴蒂斯特

    【讨论】:

    • 感谢您的回答。我已经尝试了参数平衡 uri depth 7 和 6。一旦我更改了“some-text”下的文本,haproxy 就会将 url 发送到另一台服务器。似乎 haproxy 忽略了“平衡 uri 深度”
      domain.com/some-text/9/3/90/custom/184/2256184/2.jpg
    • 我认为问题在于 URL,因为我的 URL 是一个问号 domain.com/some-text/?9/3/90/custom/184/2256184/2.jpg跨度>
    【解决方案2】:

    HAProxy 默认只使用 URL 的左侧,如果你希望它使用整个 URL(包括? 之后的部分)你需要提供whole 参数。

    如果您的网址有?,例如:

    domain.com/some-text/?9/3/90/custom/184/2256184/2.jpg
    

    您需要使用此参数,因为您对? 右侧的信息感兴趣。

    balance uri whole
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 2016-12-25
      • 2011-04-29
      • 1970-01-01
      • 2016-03-23
      相关资源
      最近更新 更多