Haproxy ACL规则

vim /usr/local/haproxy/conf/haproxy.conf
frontend www01
bind 10.125.192.100:80
#1)下面两行实现301跳转
#需求1.aaa.com------>nginx.aaa.com (301跳转)
#(short_dom为自定义名称,hdr函数包含Host -i(不区分大小写)匹配aaa.com
acl short_dom hdr(Host) -i aaa.com
#prefix 前缀跳转 保证访问 aaa.com/a.html 能跳转到nginx.aaa.com/a.html
redirect prefix http://nginx.aaa.com code 301 if short_dom
#下面6行实现URL转换path_beg定义规则 use_bakend调用规则
acl gao_static path_beg /nginx/ #path_beg是定义域名后面加载的路径 起名为gao_static
acl gao_php path_beg /php/
acl gao_java path_beg /java/
use_backend nginxpools if gao_static or gao_pic #如果满足gao_static规则或gao_pic就访问nginxpools规则服务器
use_backend phppools if gao_php
use_backend javapools if gao_java
default_backend nginxpools
基于扩展名跳转
acl gao_pic path_end .gif .png .jpg .css .js
acl gao_pic url_reg /*.(gif|png|jpg|css|js)

#nginx static contents
backend nginxpools
balance roundrobin
server gao_8000 10.125.192.2:8000

#php contents
backend phppools
balance roundrobin
server gao_9000 10.125.192.2:9000

#java contents
backend javapools
balance roundrobin
server gao_10000 10.125.192.2:10000

Haproxy基于user_agent做7层跳转
acl iphone_users hdr_sub(user-agent) -i iphone
redirect prefix http://3g-iphone.aaa.com if iphone_users

acl android_users hdr_sub(user-agent) -i android
redirect prefix http://3g-android.aaa.com if android_users

猜你喜欢

转载自blog.csdn.net/bjgaocp/article/details/88381793