目次

Tips

マルチドメインの振り分け

frontend  main *:80
    acl is_adm    hdr_dom(host) -i adm.mono.net
    acl is_app    hdr_dom(host) -i app.mono.net

    use_backend          virtual_adm if is_adm
    default_backend      default_www

backend virtual_adm
    balance     roundrobin
    server      adm01 192.168.24.222:80 check

backend default_www
    balance     roundrobin
    server      web01 192.168.24.225:80 check
    server      web02 192.168.24.226:80 check

静的・動的振り分け

frontend  main *:80
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js .html
    
    use_backend static          if url_static
    default_backend             app

backend static
    balance     roundrobin
    server      ngx01 192.168.24.223:80 check
    server      ngx02 192.168.24.224:80 check

backend app
    balance     roundrobin
    server      web01 192.168.24.225:80 check
    server      web02 192.168.24.226:80 check

クライアントIPアドレスによる振り分け

frontend  main
    bind :80
    acl is_passed src 123.123.123.123/32
    use_backend          virtual_adm if is_adm
    default_backend      default_httpd

条件のANDやOR

frontend  main
    bind :80
    acl is_passed src 123.123.123.123/32
    acl is_adm    hdr_dom(host) -i adm.mono.net
    acl is_app    hdr_dom(host) -i app.mono.net
        
    use_backend          virtual_adm if is_adm is_passed # AND条件
    use_backend          virtual_adm if is_app or is_adm # OR条件
    use_backend          virtual_adm if is_app or is_adm is_passed # ORとAND(is_app又は、is_adm且つis_passed)
    
    default_backend      default_httpd

ファイル読み込み

http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#7

frontend  main
    bind :80
    acl is_passed src -f /etc/haproxy/ipaddr.lst
        
    use_backend          virtual_adm if is_adm is_passed
    
    default_backend      default_httpd

/etc/haproxy/ipaddr.lst

# IP LIST
114.160.219.54/32
58.13.28.210/32