URL 하위 문자열을 기반으로 haproxy 경로 요청을하려면 어떻게해야합니까?


13

로드 밸런서는 두 개의 백엔드로 설정됩니다.

요청 URI는 다음과 같습니다.

http://example.com/answers/submit
http://example.com/tag-02/answers/submit

요청 URI의 형식에 따라 요청이 두 백엔드 중 하나에 전송되도록 haproxy를 어떻게 구성 할 수 있습니까? 요청 간의 유일한 차이점 /tag-02/은 요청 URI에 있습니다.

haproxy를 처음 사용하기 때문에 약간의 설명이있는 haproxy 구성 파일이 많이 감사하겠습니다.

답변:


13

ACL 을 사용하려고합니다 .

backend be1 # this is your default backend
  ...
backend be2 # this is for /tag-02 requests
  ...

frontend fe
  ...
  default_backend be1
  acl url_tag02 path_beg /tag-02
  use_backend be2 if url_tag02

HAProxy 구성 안내서의 7 절 에는 ACL에 대한 세부 사항이 있지만 use_backend, ACL로 수행 할 작업을 알려면 안내서의 4 절에 숨겨진 마법의 주문 을 알아야합니다 .


1
선언 된 ACL 스타일은 일반적으로 더 읽기 쉽고 재사용이 가능하지만 원하는 경우을 사용하여 use_backend지시문 자체 에 ACL 선언을 포함 할 수 있습니다 use_backend be2 if { path_beg /tag-02 }.
womble

0

위의 답변에 대한 더 나은 예를 제공하기 위해 아래는 구성 예입니다.

frontend https-in
   bind *:443 ssl crt /etc/ssl/server.pem
   mode http
   redirect scheme https if !{ ssl_fc }

   acl uri_help path_beg /help
   use_backend help if uri_help

backend help
    balance     roundrobin
    server      help yourbackendserver.com check
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.