HAproxy叢集搭建和配置
1.準備四臺web伺服器30.40.50.60, 一臺20排程器,一臺10測試主機
搭建httpd+mysql+php
網站 根目錄下建立三個檔案
[[email protected] ~]# echo 192.168.4.50 > /var/www/html/index.html
[[email protected] ~]# echo web50 > /var/www/html/test.html
[[email protected] ~]# vim /var/www/html/test.php
<?php
echo "hello web50";
?>
[[email protected] ~]# ls /var/www/html
index.html test.html test.php
2.配置HAproxy (192.168.4.20)
先在20上安裝haproxy
[[email protected] ~]# yum list |grep haproxy
haproxy.x86_64 1.5.14-3.el7 haha
[
備份一下haproxy的配置檔案到opt下
[[email protected] ~]# cp /etc/haproxy/haproxy.cfg /opt/
開啟配置檔案並修改
[[email protected] ~]# vim /etc/haproxy/haproxy.cfg
修改如下(數字代表行號)
63 frontend weblb 192.168.4.20:80 #指定分發主機
64 acl htmlpath path_end -i .html #識別以html結尾的訪問請求並分發給htmlgrp組的機器
65 acl phppath path_end -i .php #識別以php結尾的訪問請求並分發給phpgrp組的機器
66
67 use_backend htmlgrp if htmlpath #
68 use_backend phpgrp if phppath
69 default_backend htmlgrp
70
71 backend htmlgrp
72 balance roundrobin #roundrobin 表示輪詢的方式
73 server web30 192.168.4.30:80 check #給htmlgrp下分配主機,check代表檢查埠使用是否正常
74 server web40 192.168.4.40:80 check
75
76 backend phpgrp
77 balance roundrobin
78 server web50 192.168.4.50:80 check #給phpgrp下分配主機,check代表檢查埠使用是否正常
79 server web60 192.168.4.60:80 check
儲存退出
3. 啟動haproxy服務
[[email protected] ~]# systemctl start haproxy
4.測試
[[email protected] ~]# elinks --dump http://192.168.4.20/test.html
web30
[[email protected] ~]# elinks --dump http://192.168.4.20/test.html
web40
[[email protected] ~]# elinks --dump http://192.168.4.20/test.html
web30
[[email protected] ~]# elinks --dump http://192.168.4.20/test.html
web40
[[email protected] ~]# elinks --dump http://192.168.4.20/test.php
hello web50
[[email protected] ~]# elinks --dump http://192.168.4.20/test.php
hello web60
[[email protected] ~]# elinks --dump http://192.168.4.20/test.php
hello web50
[[email protected] ~]# elinks --dump http://192.168.4.20/test.php
hello web60