HAProxy-URI를 기반으로 다른 웹 서버로 전달


14

다음 구성의 HTTP 팜이 있습니다.

listen webfarm 10.254.23.225:80
       mode http
       balance roundrobin
       cookie SERVERID insert
       option httpclose
       option forwardfor
       option httpchk HEAD /check.txt HTTP/1.0
       server webA 10.254.23.4:80 cookie A check
       server webB 10.248.23.128:80 cookie B check

특정 URI (예 : / special)에 대한 모든 요청을 세 번째 웹 서버로 전달하는 옵션을 추가하고 싶습니다. 어떻게해야합니까?

답변:


23

다음은 호스트 헤더를 기반으로로드 밸런싱에 대해 작성한 블로그 게시물입니다.

http://www.mattbeckman.com/2009/09/18/using-the-acl-in-haproxy-for-load-balancing-named-virtual-hosts/

URI 또는 ​​디렉토리와 일치 시키려면 해당 페이지에 제공된 예제에서 사용되는 hdr_end 대신 path_beg를 사용하는 것이 좋습니다. 아래는 구성에서이를 수행하는 방법의 예입니다.

frontend http-in
    bind 10.254.23.225:80
    acl has_special_uri path_beg /special
    use_backend special_server if has_special_uri
    default_backend webfarm

backend webfarm
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webA 10.254.23.4:80 cookie webA check
    server webB 10.248.23.128:80 cookie webB check

backend special_server
    balance roundrobin
    cookie SERVERID insert
    option httpchk HEAD /check.txt HTTP/1.0
    option httpclose
    option forwardfor
    server webC 10.0.0.1:80 cookie webC check

희망이 도움이됩니다!


이봐 요, 지금 당신의 대답을 보았습니다. 실제로이 동일한 솔루션을 사용하여 이미 해결했습니다. 답변 주셔서 감사합니다!
Saggi Malachi

이 링크는 더 이상 살아 있지 않습니다. 그러나, 볼 아직 여기입니다 : web.archive.org/web/20160404161136/http://www.techrawr.com/2009/...
jaggedsoft은

1
@NextLocal Thanks-링크를 업데이트했습니다. 이전 도메인이 만료되도록했지만 위의 업데이트 된 링크에 대한 별칭이었습니다.
Matt Beckman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.