Question

as mentioned in the title, i've set an Haproxy loadbalancer with a basic configuration, what i'd like to do is to always redirect request to the first server if the hostname matches x.domaine.com, but keep the balancing for domaine.com, is it possible with Haproxy, and if so how can i do it. her's my configuration

listen webcluster *:80
mode    http
    balance roundrobin
    option httpchk HEAD / HTTP/1.0
    option forwardfor
    cookie LSW_WEB insert
    option httpclose
server bigSRV  192.168.1.10:8082 cookie LSW_WEB01 check
server miniSRV 192.168.2.10:8082 cookie LSW_WEB01 check

thanks in advence

Was it helpful?

Solution

after hours of digging i finally got it to work, so i'm going to answer my own question in case if samone have the same issue

generally i created a frontend that listen on port:80 and in which i defined 2 ACLs that uses the "if" statement to check the http header and then redirect to one of the backends defined, if no request matches the conditions, we redirect to default backend, here's how it's done (on haproxy.cfg) :

frontend http-proxy
    bind *:80
    acl is_www hdr(host) -i www.domain.com
    acl is_x hdr(host) -i x.domain.com
    use_backend clusterWWW if is_www
    use_backend clusterX if is_x
    default_backend clusterWWW

backend clusterWWW
    server bigSRV  192.168.1.10:8082 cookie LSW_WEB01 check
    server miniSRV 192.168.2.10:8082 cookie LSW_WEB01 check

backend clusterX
    server bigSRV  192.168.1.10:8082 cookie LSW_WEB01 check
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top