HAProxy를 사용하여 호스트 이름을 기반으로 트래픽을 전환하는 방법은 무엇입니까?


17

HAProxy가 다양한 다른 포트에서 수신 대기하는 여러 응용 프로그램 서버를 설정하여 초기에 성공했습니다.

이제 하나의 포트에서 다른 웹 서버를 수신 대기하고 있으며 호스트 이름으로 트래픽을 흐르게하기 위해 구성을 변경하기 위해 어떤 변경을 원합니다.

다음은 현재 설정입니다.

  • 내 아파치 웹 서버가 examplecom : 8001에서 실행 중입니다.
  • 수많은 앱 서버 0.0.0.0:8081, 0.0.0.0:8082, 0.0.0.0:8083
global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  maxconn 4096
  debug
  #quiet
  #user haproxy
  #group haproxy

defaults
  log global
  mode  http
  option  httplog
  option  dontlognull
  retries 3
  redispatch
  maxconn 2000
  contimeout  5000
  clitimeout  50000
  srvtimeout  50000

listen appservers 0.0.0.0:80
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  #option httpchk HEAD /check.txt HTTP/1.0
  server  inst1 0.0.0.0:8081 cookie server01 check inter 2000 fall  3
  server  inst2 0.0.0.0:8082 cookie server02 check inter 2000 fall  3
  server  inst3 0.0.0.0:8083 cookie server01 check inter 2000 fall  3
  server  inst4 0.0.0.0:8084 cookie server02 check inter 2000 fall  3
  capture cookie vgnvisitor= len 32

(^ 설정에 대한 다른 의견은 환영합니다.)

이제 위와 동일하게 계속하고 싶지만 호스트 이름이 myspecialtopleveldomain <dot> com 인 경우 트래픽을 example <dot> com : 8001로 전달하고 싶습니다.

~ B


2
프론트 엔드 및 백엔드 구성을 사용하여 호스트 이름을 기반으로 다른 서버로 요청을 보낼 수 있습니다. 당신의 질문은 약간 혼란 스럽습니다 .example.com : 8001을 언급했지만 구성에 없습니다. 포트 80에서 myspecialtopleveldomain.com에 대한 요청 대상입니까? 사용자가 입력 할 샘플 URL과 haproxy를 통해 해당 URL을 보낼 위치를 몇 개 제공 할 수 있습니다.
ThatGraemeGuy

답변:


24

예를 들면 다음과 같습니다.

frontend http
        bind 0.0.0.0:80
        default_backend www
        # NAT static host names and static paths in other hostnames to a different backend
        acl host_static hdr_beg(host) -i static.
        acl url_static  path_beg         /static
        use_backend static if host_static or url_static

backend www
        balance roundrobin
        server  qa1 10.177.1.81:80
        server  qa2 10.177.1.45:80

backend static
        balance roundrobin
        server  media1 10.177.0.86:80

샘플 구성에 감사드립니다.로드 밸런서 구성을 마무리하는 데 도움을주었습니다. :)
isNaN1247
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.