【问题标题】:haproxy use_backend condition (acl) is missing the backendhaproxy use_backend 条件(acl)缺少后端
【发布时间】:2020-01-02 10:17:18
【问题描述】:

我有一个应用程序安装在两台服务器上以解决平衡问题。

我想像下面这样路由流量:

服务器 1:客户端 服务器 2:管理员

服务器 1 应用配置: 主机:192.168.0.101 端口:5031

服务器 2 应用配置: 主机:192.168.0.102 端口:5032

应用程序在具有相同数据库连接的两台服务器中是相同的。

我在 192.168.0.101 中安装了 haproxy,端口为 5033 并设置:

frontend hh-test
        bind 192.168.0.101:5033
        mode tcp
        option tcplog
        acl is_admin path_reg ^/admin/sales$
        use_backend server2 if is_admin
        default_backend server1

backend server2
        mode tcp
        server admin 192.168.0.102:5032

backend server1
        mode tcp
        server client 192.168.0.101:5031

确实有效。当我访问 http://192.168.0.101:5033 它从服务器 1 提供服务时,当我访问 http://192.168.0.101:5033/admin/sales 它从服务器 2 提供服务......正如预期的那样。但是一些请求转到 server1 访问相同的 /admin/sales url。很少。我不确定我做错了什么,一些请求转到了另一个后端。请问我可以了解一下吗?

【问题讨论】:

    标签: haproxy


    【解决方案1】:

    我必须使用 http 模式才能正确捕获 url。

    所以工作版本是:

    frontend hh-test
            bind 192.168.0.101:5033
            mode http
            option httplog
            acl is_admin path_reg ^/admin/sales$
            use_backend server2 if is_admin
            default_backend server1
    
    backend server2
            mode http
            server admin 192.168.0.102:5032
    
    backend server1
            mode http
            server client 192.168.0.101:5031
    

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多