1. 程式人生 > >HAproxy叢集搭建和配置

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         
[

[email protected] ~]# yum -y install haproxy

備份一下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