HAproxy path_beg не перенаправляет - PullRequest
0 голосов
/ 27 апреля 2018

Мне нужно использовать path_beg, но, похоже, не работает, мой файл конфигурации:

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

backend foo-cluster работает, если я иду на http://www.example.com/bar у меня 404 не найден из foo-cluster, есть идеи? (используйте haproxy 1.7.7)

1 Ответ

0 голосов
/ 29 апреля 2018

Для 'http://www.example.com/bar' url, ACL для foo и bar имеют значение True.
Поскольку «use_backend foo_cluster» оценивается первым, тогда ваш запрос будет перенаправлен на этот бэкэнд, даже если для ACL bar установлено значение True.
Поэтому вам нужно изменить порядок правил «use_backend» или конкретизировать определение ACL.

...