Haproxy ACL for balance on URL request
Posted
by
Elgreco08
on Server Fault
See other posts from Server Fault
or by Elgreco08
Published on 2011-03-30T20:36:05Z
Indexed on
2011/11/29
9:52 UTC
Read the original article
Hit count: 367
I'm usung Ubuntu with haproxy 1.4.13 version.
Its load balancing two subdomains:
- app1.domain.com
- app2.domain.com
now i want to be able to use ACL to send based on url request to the right backends For example:
http://app1.domain.com/path/games/index.php sould be send to backend1
http://app1.domain.com/path/photos/index.php should be send to backend2
http://app2.domain.com/path/mail/index.php sould be send to backend3
http://app2.domain.com/path/wazap/index.php should be send to backend4
i did used the code the the following acl
frontend http-farm
bind 0.0.0.0:80
acl app1web hdr_beg(host) -i app1 # for http://app1.domain.com
acl app2web hdr_beg(host) -i app2 # for http://app2.domain.com
acl msg-url-1 url_reg ^\/path/games/.*
acl msg-url-2 url_reg ^\/path/photos/.*
acl msg-url-3 url_reg ^\/path/mail/.*
acl msg-url-4 url_reg ^\/path/wazap/.*
use_backend games if msg-url-1 app1web
use_backend photos if msg-url-2 app2web
use_backend mail if .....
backend games
option httpchk GET /alive.php HTTP/1.1\r\nHost:\ app1.domain.com
option forwardfor
balance roundrobin
server appsrv-1 192.168.1.10:80 check inter 2000 fall 3
server appsrv-2 192.168.1.11:80 check inter 2000 fall 3
backend photos
option httpchk GET /alive.php HTTP/1.1\r\nHost:\ app2.domain.com
option forwardfor
balance roundrobin
server appsrv-1 192.168.1.13:80 check inter 2000 fall 3
server appsrv-2 192.168.1.14:80 check inter 2000 fall 3
....
Since the path mail, photos...etc will be application pools on iis, i want to monitor them if they are alive, if the pool does not respond it should stop serving it.
my problem is for sure in the regular expression in the ACL acl msg-url-4 url_reg ^\/path/wazap/.*
What should i change in the ACL to make it work ?
thanks for any hints
© Server Fault or respective owner