搭建环境
实验环境:rhel7.5
主机信息 | 作用 |
---|---|
server1(172.25.8.1) | haproxy |
server2(172.25.8.2) | 读的功能 |
server3(172.25.8.3) | 写的功能 |
真机 | 测试 |
#1 Haproxy设置黑名单
当某主机被添加到黑名单里面的时候,报错让他转移到其他的页面连接
[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
67 frontend main *:80
68 acl blacklist src 172.25.8.250
69 http-request deny if blacklist
70 errorloc 403 http://172.25.8.1:8080/index.html
[root@server1 ~]# yum install -y httpd
[root@server1 ~]# vim /var/www/html/index.html
无法访问!!!
#本机上安装http,只是为了提供8080端口
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# netstat -anltp
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
42 Listen 8080
[root@server1 ~]# systemctl restart haproxy.service
#浏览器测试:
输入:172.25.8.1:8080/index.html
[kiosk@foundation8 ~]$ curl 172.25.8.1:8080
无法访问!!!
#2 Haproxy动静分离
nginx:擅长处理静态页面
apache:擅长处理动态页面访问.php
#修改配置文件
在server3安装php,访问动态.php
默认访问的是server2,静态页面
访问.php文件的时候,访问的动态文件;
[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
68 acl blacklist src 172.25.8.111
69 http-request deny if blacklist
70 errorloc 403 http://172.25.8.1:8080/index.html
75 use_backend dynamic if {
path_end .php } #php文件
76 default_backend static
81 backend static
82 balance roundrobin
83 server web1 172.25.8.2:80 check inter 1000
84 backend dynamic #访问php是访问的server3动态页面
85 balance roundrobin
86 server web2 172.25.8.3:80 check inter 1000
[root@server1 ~]# systemctl restart haproxy.service
#在server3上安装php
[root@server3 ~]# yum install -y php
[root@server3 ~]# vim /var/www/html/index.php
<?php
phpinfo()
?>
[root@server3 ~]# systemctl restart httpd.service