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: 365

Filed under:
|
|
|

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

Related posts about load-balancing

Related posts about load