在前面实验(https://blog.csdn.net/qq_35887546/article/details/104731132)的基础上实现动静分离
实验流程如下:
1.修改配置文件
在server1:
[root@server1 ~]# vim /etc/haproxy/haproxy.cfg
61 # main frontend which proxys to the backends
62 #---------------------------------------------------------------------
63 frontend westos *:80 #编辑前端和后端策略
64 acl url_static path_beg -i /images #表示url地址以/images开头时即认为时静态地址
65 acl url_static path_end -i .jpg .gif .png #表示url地址以.jpg .gif .png 结尾时即认为时静态地址
66
67 use_backend static if url_static
68 default_backend app #其他默认为动态地址
69
70 #---------------------------------------------------------------------
71 # static backend for serving up images, stylesheets and such
72 #---------------------------------------------------------------------
73 backend static #编辑静态策略
74 # balance roundrobin
75 server static 172.25.63.3:80 check #指定server3为静态页面服务器
76
77 ##---------------------------------------------------------------------
78 # round robin balancing between the various backends
79 #---------------------------------------------------------------------
80 backend app #编辑动态策略
81 balance roundrobin
82 server web1 172.25.63.2:80 check
83 server web2 172.25.63.1:8000 check
84 # server app3 127.0.0.1:5003 check
85 # server app4 127.0.0.1:5004 check
86
87 listen admin *:8080
88 stats enable
89 stats uri /status #监控页面地址
90 stats auth admin:westos #管理帐号和密码
91 stats refresh 5s #刷新频率
92
93 #listen westos *:80 #监听的实例名称,地址和端口
94 # balance roundrobin #负载均衡算法
95 # server web1 172.25.63.2:80 check
96 # server web2 172.25.63.3:80 check
2.配置动态页面服务器server1
将server1配置为另外一台apache服务器:
[root@server1 ~]# yum install httpd -y
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# vim index.html
server1
[root@server1 html]# vim /etc/httpd/conf/httpd.conf #由于server1同样也是haproxy代理服务器,为了防止端口冲突,将server1的htppd端口改为8000
42 Listen 8000
[root@server1 html]# systemctl start httpd #注意,selinux必须关闭,要不然启动会报错
3.配置静态页面服务器server3
在sercer3apache发布目录放入测试文件:
[root@server3 html]# pwd
/var/www/html
[root@server3 html]# mkdir images
[root@server3 html]# cd images/
[root@server3 images]# ls
123.jpg
4.测试
首先在server1重启haproxy服务:
[root@server1 html]# systemctl restart haproxy.service
测试动态页面
在客户端:
[root@foundation63 ~]# curl 172.25.63.1
server2
[root@foundation63 ~]# curl 172.25.63.1
server1
[root@foundation63 ~]# curl 172.25.63.1
server2
[root@foundation63 ~]# curl 172.25.63.1
server1
说明动态页面测试成功
测试静态页面
在客户端浏览器访问http://172.25.63.1/images/
:
以上实验结果说明使用haproxy成功实现动静分离。