haproxy高可用負(fù)載均衡集群

haproxy是一個(gè)反向代理服務(wù)器,可以實(shí)現(xiàn)4層和7層的負(fù)載均衡。他自帶強(qiáng)大的監(jiān)控服務(wù)器狀態(tài)的頁(yè)面,監(jiān)控起來(lái)相當(dāng)方便,下面我們來(lái)用haproxy實(shí)現(xiàn)高可用的負(fù)載均衡集群,其架構(gòu)如下圖所示

客戶端訪問(wèn)vip,然后兩臺(tái)調(diào)度器哪臺(tái)優(yōu)先級(jí)高哪臺(tái)取得vip,通過(guò)haproxy提供代理服務(wù),通過(guò)調(diào)度算法找到后端的節(jié)點(diǎn)。
實(shí)現(xiàn)步驟:
1.部署nfs服務(wù)器

[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# vim /etc/exports
添加如下內(nèi)容
/usr/share/wordpress/ 172.16.200.103(rw,no_root_squash) 172.16.200.104(rw,no_root_squash)    #no_root_squash表示不壓縮權(quán)限,在本地使用時(shí)權(quán)限仍然為root,不寫(xiě)這一條可能導(dǎo)致本地不能創(chuàng)建文件。
[root@localhost ~]# service rpcbind start
[root@localhost ~]# service nfs start
[root@localhost ~]# exportfs -v    #檢測(cè)共享成功

然后下載wordpress安裝包,解壓到/usr/share/之下
2.在兩臺(tái)節(jié)點(diǎn)服務(wù)器上部署lamp環(huán)境:
(1)配置php和httpd

[root@localhost ~]# yum -y install httpd php mysql-server php-mysql
[root@localhost ~]# vim /var/www/html/index.php
<?php
phpinfo();
?>

用瀏覽器訪問(wèn)http://172.16.200.103/index.php ,出現(xiàn)php頁(yè)面證明php和httpd安裝成功
(2)掛載nfs文件系統(tǒng):

[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mkdir /var/www/html/wordpress/
[root@localhost ~]# mount 172.16.200.105:/usr/share/wordpress /var/www/html/wordpress/

(3)然后配置mysql

[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql_secure_installation     #運(yùn)行mysql初始化程序,給root設(shè)置個(gè)密碼,然后刪除多余的用戶和庫(kù)
[root@localhost ~]# mysql -u root -p    #輸入密碼后進(jìn)入mysql
mysql> create database wordpress;    #創(chuàng)建專(zhuān)用庫(kù)
mysql> grant all on wordpress.* to worduser@'172.16.%.%' identified by '123';    #創(chuàng)建并授權(quán)用戶

(4)
完成后訪問(wèn)172.16.200.103/wordpress,出現(xiàn)wordpress設(shè)置頁(yè)面,將在數(shù)據(jù)庫(kù)中創(chuàng)建的庫(kù)名和用戶名密碼輸入,ip地址填寫(xiě)為當(dāng)前l(fā)amp服務(wù)器的ip。然后下一步,這里會(huì)提示我們創(chuàng)建配置文件,我們?cè)趙ordpress目錄下創(chuàng)建這個(gè)文件,然后將內(nèi)容粘貼進(jìn)去:

[root@localhost wordpress]# cd /var/www/html/wordpress/
[root@localhost wordpress]# vim wp-config.php
將網(wǎng)頁(yè)中提示的文件內(nèi)容粘貼進(jìn)去就行,這里就不在顯示文件內(nèi)容了

然后輸入標(biāo)題,輸入網(wǎng)站用戶名和密碼,就進(jìn)入到wordpress中了
3.在兩臺(tái)調(diào)度器上安裝haproxy服務(wù),并配置文件。
主配置文件/etc/haproxy/haproxy.cfg的格式如下
配置段:
global:全局配置段
進(jìn)程及安全配置相關(guān)的參數(shù)
性能調(diào)整相關(guān)參數(shù)
Debug參數(shù)
proxies:代理配置段
defaults:為frontend, listen, backend提供默認(rèn)配置;
fronted:前端,相當(dāng)于nginx, server {}
backend:后端,相當(dāng)于nginx, upstream {}
listen:同時(shí)擁前端和后端,一般將服務(wù)器狀態(tài)頁(yè)面部署進(jìn)到這個(gè)段中。

[root@localhost ~]# yum -y install haproxy
[root@localhost ~]# vim /etc/haproxy/haproxy.cfg
#找到frontend  main *:5000行,將這行和之后的內(nèi)容都刪除掉,自己定義以下內(nèi)容
frontend web    
        bind *:80
        default_backend     websrvs

backend websrvs
                balance roundrobin
                server srv1 172.16.200.103:80 check
                server srv2 172.16.200.104:80 check

然后重啟haproxy,測(cè)試
4.部署keepalived
在兩臺(tái)調(diào)度器上安裝keepalived,然后部署
這是第一臺(tái)的配置

[root@localhost ~]# yum -y install keepalived
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
    feng@mageedu.com
   }
   notification_email_from admin@mageedu.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node1
   vrrp_mcast_group4 224.16.120.18
}

vrrp_script chk_haproxy {
    script "killall -o haproxy"
    interval 2
    weight -10
    fall 2
    rise 2
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 16
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.200.100
    }
    track_script {
    chk_proxy
    }
}

這是第二臺(tái)的配置

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 16
    priority 95
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.200.100
    }
    track_script {
    chk_proxy
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容