본문 바로가기
haproxy

haproxy acl 을 이용한 특정 호스트 route




- haproxy 에서는 acl이라는 기능으로 특정 클라이언트 기준으로 그룹화 하여 특정 그룹에 대하여 backend설정을 할 수 있다.

 

 

# 아래와 같이 hdr(host) -i 옵션을 acl에 추가 하여 clinet 로 부터 오는 host 이름 기준으로 acl을 정의 하여 use_backend 를 이용,
# 특정 backend 로 이동이 가능 하다 .
frontend http-in

    bind *:80

    # host names 기준으로 acl적용 만약 naver.com 에서 오는 client 에 대하여 host_naver로 설정 ,daum.net 에 대하여 host_daum으로 정의
    acl host_naver hdr(host) -i naver.com
    acl host_daum hdr(host) -i daum.net

    # 해당 정의 된 acl에 의해서 backend로 이동 하게 된다.
    use_backend backend_daum if host_daum 
    use_backend backend_naver  if host_naver 

## path_sub를 이용 할경우 host에 포함된 string 이 포함 되면 acl 로 적용 되게 된다.그외 설정은 host기반과 거의 유사 하다.

frontend http-in

    bind *:80

    # host names 기준으로 acl적용 만약 naver가 포함된 host에서 오는 client 에 대하여 sub_naver로 설정 ,daum이 포함된 호스트에 대하여 sub_daum으로 정의
    acl sub_naver path_sub  naver
    acl sub_daum path_sub daum

    # 해당 정의 된 acl에 의해서 backend로 이동 하게 된다.
    use_backend backend_daum if sub_daum 
    use_backend backend_naver  if sub_naver 
반응형