HAproxy path_beg不重定向

时间:2018-04-27 09:57:05

标签: haproxy

我需要使用path_beg但似乎不起作用,我的conf文件是:

global
    log 127.0.0.1 local0
    maxconn 4096

defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    option redispatch
    maxconn 2000
    timeout connect 600000
    timeout client 600000
    timeout server 600000

frontend http-in
    bind *:80

    acl foo     hdr(host)   -i  www.example.com
    acl bar     path_beg    /bar

    use_backend foo-cluster     if  foo
    use_backend bar-cluster     if  bar

backend foo-cluster
    balance roundrobin
    option http-server-close
    option forwardfor
    http-request set-header X-Client-IP %[src]
    server foo 172.51.0.201:80

backend bar-cluster
    balance roundrobin
    option http-server-close
    option forwardfor
    http-request set-header X-Client-IP %[src]
    server bar 172.51.0.202:80

后端foo-cluster工作,如果我转到http://www.example.com/bar我找不到foo-cluster中的404,有什么想法吗? (使用haproxy 1.7.7)

1 个答案:

答案 0 :(得分:2)

对于“http://www.example.com/bar”网址,foo和bar ACL均为True 由于首先评估“use_backend foo_cluster”,因此即使条形码ACL为True,您的请求也将路由到该后端。
因此,您需要重新排序“use_backend”规则,或者在ACL定义中更具体。