Linux基礎教程之利用keepalived實現主/從和主/主模式的高性能負載均衡集群實戰手冊

要求:

1、使用nginx的反向代理功能實現負載均衡

2、keepalived實現高可用

???????第一組的虛擬地址為172.16.1.100

????????????D設備的優先級高

???????第二組的虛擬地址為172.16.1.110

????????????E設備的優先級高

3、分別實現主/從和主/主兩種配置

集群拓撲:

? ? ?

第一種:主/從配置

所有配置之前先在各個主機上進行時間同步

?ntpdate 時間服務器地址

一、后端real server(A、B、C)配置

???1、在A、B、C三臺主機上安裝httpd包

????yum install httpd

???2、配置虛擬主機

???????vim /etc/httpd/conf.d/vir.conf

??????A主機:

? ? ? ?

? ? ?B主機

? ? ? ?

? ? ?C主機

? ? ? ??

? ?3、創建三主機的URL 目錄及主頁面

???A主機

?????mkdir ?-pv /data/web/

?????????vim /data/web/index.html

?????????內容為 This is Vhost1

???B主機

?????mkdir ?-pv /data/web/

?????????vim /data/web/index.html

?????????內容為 This is Vhost2

???C主機

?????mkdir ?-pv /data/web/

?????????vim /data/web/index.html

?????????內容為 This is Vhost3

注意:三主機主頁面不同,是為了后面實驗來區分不同的real server

啟動httpd服務: systemctl ?start ?httpd.service

二、配置負載均衡節點

? ? ? ? ?D(此主機為MASTER)

? E(此主機為BACKUP)主機

? 利用nginx的ngx_http_upsteam_module模塊實現負載均衡

1、安裝nginx包

? ? ? ? ? ??在D、E主機上分別安裝

? ? ? ? ? ? yum install nginx

2、配置負載均衡

? ? ? ? ? ?在D、E主機上分別安裝

???vim /etc/nginx/nginx.conf

???定義websvr組:

????upstream websvr {

??????????server 192.168.70.137:80;

??????????server 192.168.70.138:80;

??????????server 192.168.70.140:80;

?????????}

???反向代理組 websvr

???????location / {

?????????????proxy_pass http://websvr;

????????}

? ??

三、配置keepalived服務

? ? ? 1、全局配置

??主機D上

??

? ? ? ? ?主機E上配置

? ? ? ? ?

? ? ?2、分別在兩個主機上定義腳本 chk_down

? ? ? ? ?此腳本的功能:

? ? ? ? ? ??文件 /etc/keepalived/down 存在時:虛擬IP轉義到另一個節點

? ? ? ? ?vrrp_script chk_down {

? ? ? ? ? ? ? script “[[ -f /etc/keepalived/down ]] && exit 1 || exit 0”

? ? ? ? ? ? ? ?interval 1

? ? ? ? ? ? ? ?weight -10

? ? ? ? ? ? }

? ? ? 3、分別在兩個主機上定義腳本 chk_ngx

? ? ? ? ?此腳本功能:

? ? ? ? ? ?確認nginx服務是否正運行

? ? ? ? ? vrrp_script chk_ngx {

? ? ? ? ? ? ? script “killall -0 nginx && exit 0 || exit 1”

? ? ? ? ? ? ? interval 1

? ? ? ? ? ? ??weight -10

? ? ? ? ? ? ? fall 2

? ? ? ? ? ? ? rise 1

? ? ? ? ? }

? ? ? ? ??

? ? ? 4、vrrp_instance配置

? ? ? ? ?D主機

? ? ? ? ?

? ? ??? E主機

? ? ? ??

? ? ?5、創建notify警告配置腳本

? ? ? ? ?分別在兩個主機上創建

? ? ? ? ?vim ?/etc/keepalived/notify.sh

? ? ? ? ??

? ? ? ? ?chmod +x notify.sh 給予此腳本執行權限

6、啟動服務

??systemctl start keepalived.service

四、測試

??1、不做修改時,即主機D上沒有/etc/keepalived/down文件

? ? ? (1)、查看虛擬IP位置

? ? ? ? ? ??在主機D上(此主機為MASTER)

? ? ? ? ? ? ?

? ? 在主機E上(此主機為BACKUP)

? ? ?

通過對比可以看到虛擬IP在D主機上

????(2)、查看nginx是否啟動

?????通過腳本/etc/keepalived/notify.sh可以看到哪臺主機成為MASTER狀態,哪臺主機就自動啟動nginx服務

????主機D

? ??

????主機E

? ??

通過對比可以知道主機D上的nginx服務啟動,而主機E上的nginx服務為啟動

(3)訪問URL

?????curl ?http:/172.16.1.10

? ? ?

? ? ?2、在主機D上創建/etc/keepalived/down文件

? ? ? ? ?touch ?/etc/keepalived/down

? ? ? ? (1)、查看虛擬IP位置

? ? ? ? ? ??在主機D上(此主機為MASTER)

? ? ? ? ? ??

?在主機E上(此主機為BACKUP)

? ? ? ? ? ??

?通過對比可以看到虛擬IP在E主機上

? ? ?(2)、查看nginx是否啟動

??????主機D

? ? ? ? ? ?

? ? ? ? ? ? ?主機E上

? ? ? ? ??

???????通過對比可以知道主機E上的nginx服務啟動,而主機D上的nginx服務為啟動

(3)訪問URL

?????curl ?http:/172.16.1.100

? ? ? ? ?

? ? ? ? ?能正常訪問,現實了高性能

第二部分實現主/主配置

一、增加配置在D、E主機上

????1、 在原有的配置基礎上增加一個vrrp_instance配置

????????在主機D上配置

? ? ? ?

? ? ? ??在主機E上配置

? ? ? ?

? ? 2、修改警告配置腳本

??????將backup時停止nginx服務改為啟動nginx服務

? ? ? ?

二、檢測

???1、不做修改時,即主機D和E上都沒有/etc/keepalived/down文件

?????(1)、查看虛擬IP位置

? ? ??在主機D上

? ? ??

?????在主機E上

? ? ??

通過對比看到:

????虛擬IP:172.16.1.100在主機D上

? ? ? ? ? ?虛擬IP:172.16.1.110在主機E上

?????(2)查看nginx服務狀態

? ? ? ? ??主機D、E的nginx服務都處于啟動狀態

? ? ? ? ??

? ? ?(3)訪問URL

??????curl ?http:/172.16.1.100

? ? ? ? ? ??

? ? ?curl ?http:/172.16.1.110

? ? ? ? ? ? ?

? ? ? ??? ?能正常訪問,現實了高性能

????2、在主機D上創建/etc/keepalived/down文件

? ? ? ??(1)、查看虛擬IP位置

? ? ? ? ? ? 在主機D上

? ? ? ? ? ?

? ? ? ? ?在主機E上

? ? ? ? ? ?

通過對比看到:

????虛擬IP:172.16.1.100在主機E上

? ? ? ? ? ?虛擬IP:172.16.1.110在主機E上

?????(2)查看nginx服務狀態

? ? ? ? ??主機D、E的nginx服務都處于啟動狀態

? ? ? ? ?

? ? ?(3)訪問URL

??????curl ?http:/172.16.1.100

? ? ? ? ? ??

? ? ?curl ?http:/172.16.1.110

? ? ? ? ? ? ?

? ? ? ? ??? ?能正常訪問,現實了高性能

????3、在主機E上創建/etc/keepalived/down文件

? ? ? ????(1)、查看虛擬IP位置

? ? ? ? ? ? 在主機D上

? ? ? ? ? ?

? ? ? ? ? ? 在主機E上

? ? ? ? ? ?

通過對比看到:

????虛擬IP:172.16.1.100在主機D上

? ? ? ? ? ?虛擬IP:172.16.1.110在主機D上

?????(2)查看nginx服務狀態

? ? ? ? ??主機D、E的nginx服務都處于啟動狀態

? ? ? ? ?

? ? ?(3)訪問URL

??????curl ?http:/172.16.1.100

? ? ? ? ? ??

? ? ?curl ?http:/172.16.1.110

? ? ? ? ? ? ?

? ? ? ? ??? ?能正常訪問,現實了高性能

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播