1、域名匹配
vim /etc/haproxy/conf.d/domain.cfg
frontend openlab_http_port
bind 192.168.157.10:80
mode http
balance roundrobin
log global
option httplog
###################### acl setting ###############################
acl pc_domain hdr_dom(host) -i www.openlab.org
acl mobile_domain hdr_dom(host) -i mobile.openlab.org
###################### acl hosts #################################
use_backend pc_hosts if pc_domain
use_backend mobile_hosts if mobile_domain
default_backend pc_hosts
###################### backend hosts #############################
backend mobile_hosts
mode http
server web1 192.168.157.200:80 check inter 2000 fall 3 rise 5
backend pc_hosts
mode http
server web2 192.168.157.201:80 check inter 2000 fall 3 rise 5
重启haproxy
#访问端电脑配置
[root@localhost ~]# vi /etc/hosts *
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.157.10 mobile.openlab.org www.openlab.org openlab.org
curl openlab.org默认为www的web2
2、基于源IP或子网调度访问
vim /etc/haproxy/conf.d/domain.cfg
acl ip_range_test src 172.18.0.0/16 192.168.157.131
use_backend pc_hosts if ip_range_test
此时用第四台电脑curl返回的都是web2
3、基于源地址的访问控制
vim /etc/haproxy/conf.d/domain.cfg
重启haproxy
访问端curl时被拒绝
4、基于文件后缀名实现动静分离
①VIP端
vim /etc/haproxy/conf.d/domain.cfg
13 acl static path_end -i .jpg .jpeg .png .gif .css .js
14 acl dynamic path_end -i .php
16 use_backend static_pools if static
17 use_backend dynamic_pools if dynamic
33 backend static_pools
34 mode http
35 server w1 192.168.157.200:80 check
36
37 backend dynamic_pools
38 mode http
39 server w2 192.168.157.201:80 check
②web1
安装php
[root@localhost ~]# vim /var/www/html/200.php(简单配置)
<?php
phpinfo
?>
接着上传图片(例如:图片名称为1.php )
重启httpd
此时浏览器上输入 192.168.157.200/1.php可以看到
③web2
上传图片 2.jpg
此时web2开启nginx
此时浏览器上输入 192.168.157.201/2.jpg图片就可以出来了
④此时浏览器上输入VIP/1.php或者VIP/2.jpg就可以实现动静分离