集羣架構-用keepalived配置高可用集羣

[toc]html

集羣架構-用keepalived配置高可用集羣

擴展 heartbeat和keepalived比較http://blog.csdn.net/yunhua_lee/article/details/9788433 DRBD工做原理和配置 http://502245466.blog.51cto.com/7559397/1298945 mysql+keepalived http://lizhenliang.blog.51cto.com/7876557/1362313mysql

1、集羣介紹

根據功能劃分爲兩大類:高可用和負載均衡;linux

高可用集羣一般爲兩臺服務器,一臺工做,另一臺做爲冗餘,當提供服務的機器宕機,冗餘將接替繼續提供服務;nginx

實現高可用的開源軟件有:heartbeat、keepalived; 負載均衡集羣,須要有一臺服務器做爲分發器,它負責把用戶的請求分發給後端的服務器處理,在這個集羣裏,除了分發器外,就是給用戶提供服務的服務器,這些服務器數量至少爲2;web

實現負載均衡的開源軟件有LVS、keepalived、haproxy、nginx,商業的有F五、Netscaler。算法

2、用keepalived搭建高可用集羣

mark

在這裏咱們使用keepalived來實現高可用集羣,由於heartbeat在centos6上有一個問題,影響實驗效果sql

keepalived經過VRRP(Virtual Router Redundancy Protocl)來實現高可用。vim

在這個協議裏會將多臺功能相同的路由器組成一個小組,這個小組裏會有1個master角色和N(N>=1)個backup角色。後端

master會經過組播的形式向各個backup發送VRRP協議的數據包,當backup收不到master發來的VRRP數據包時,就會認爲master宕機了。此時就須要根據各個backup的優先級來決定誰成爲新的mater。centos

keepalived要有三個模塊,分別是core、check和vrrp。其中core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件的加載和解析,check模塊負責健康檢查,vrrp模塊是來實現VRRP協議的。

mark

keepalived 負載均衡的框架是依賴於著名的而且被普遍使用的 Linux Virtual Server(LVS 的 ipvs)內核模塊提供的 Layer 4(OSI 參考模型的第四層,傳輸層)上的負載均衡。keepalived 實現了一套經過對服務器池(也就是Real Server 池,Server pool)健康狀態來動態地、自動維護的管理被負載均衡的服務器池的 checker。

而 keepalived 高可用(High-available)是經過 VRRP 協議來實現的,VRRP 在路由器的故障轉移中是很是基礎、經常使用的,而 keepalived 實現了一套 hooks 爲 VRRP finite state machine 提供底層,高速的協議互動。

keepalived 框架能夠被用於獨立的亦或者是所有一塊兒使用來提供彈性服務的基礎設施,而且是一個免費,開源的軟件。總的來講它能爲咱們提供這樣一些功能:

  • 在 LVS 框架上擴展,兩者具有良好的兼容性。
  • 經過對服務器池的健康檢查,對失效機器的故障隔離與通知。
  • 經過 VRRP 實現的負載均衡器之間的切換,達到高可用

mark

經過結構圖咱們瞭解到 keepalived 涉及到內核空間的兩個網絡功能,分別是:

  • IPVS:LVS 的 IP 負載均衡技術的使用
  • NETLINK:提供高級路由及其餘相關的網絡功能

在用戶空間主要分爲4個部分,分別是Scheduler I/O Multiplexer、Memory Mangement、Control Plane 和Core components。

  • Scheduler I/O Multiplexer:一個I/O複用分發調度器,它負責安排keepalived 全部內部的任務請求。
  • Memory Management:一個內存管理機制,這個框架提供的訪問內存的一些通用方法。
  • Control Plane 是 keepalived 的控制面板,能夠實現對配置文件進行編譯和解析,keepalived的配置文件解析比較特殊,它只有在用到某模塊時才解析相應的配置。
  • Core components 是 keepalived 要核心組件,包含了一系列的功能模塊,

而其中就會有這樣的一些模塊:

  • WatchDog:監控checkers和VRRP進程的情況;
  • Checkers:真實服務器的健康檢查 health checking,是 keepalived 最主要的功能;
  • VRRP Stack:負載均衡器之間的切換;
  • IPVS wrapper:設定規則到內核 ipvs 的接口;
  • Netlink Reflector:設定 vrrp 的vip地址等路由相關的功能。

Keepalived 原理

經過上訴咱們瞭解到 keepalived 主要功能實現仍是依賴於 LVS 與 VRRP。LVS 咱們已經知道是什麼了。可是 VRRP 又是什麼?

最先的 VRRP 是由 IETF 提出的解決局域網中配置靜態網關出現單點失效現象的路由協議,使得在發生故障而進行設備功能切換時能夠不影響內外數據通訊,不須要再修改內部網絡的網絡參數。VRRP 協議須要具備IP地址備份,優先路由選擇,減小沒必要要的路由器間通訊等功能。

VRRP 協議的功能實現是將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器IP,而在路由器組內部,經過算法多角度的選舉此時的 MASTER 機器做爲這個對外 IP 的擁有者,也就是 ARP 的解析,MASTER 的 MAC 地址與 IP 相互對應,其餘設備不擁有該 IP,狀態是 BACKUP,而 BACKUP 除了接收 MASTER 的 VRRP 狀態通告信息外,不執行對外的網絡功能。當主機失效時,BACKUP 將當即接管原先 MASTER 的網絡功能。從而達到了無縫的切換,而用戶並不會知道網絡設備出現了故障。

mark

簡單來講,vrrp 就是讓外界認爲只有一個網關在工做(在邏輯結構上將兩臺虛擬成一臺設備),當通常狀況下,全部的網絡功能都經過 Master 來處理,而其忽然出問題的時候,有一個備胎可以立馬接替他的工做,而不用用戶手動修改本身的電腦配置

而上文所說的 Master,也就是咱們的主路由(也就是當前工做的路由)是經過主備路由之間相互通訊,經過其 route_id、優先級等來綜合斷定從而選舉出來的,

主路由會每隔 1 秒(這個值能夠修改配置)發送 vrrp 包通知 Backup 路由本身仍是健康的存活着,而 Backup 路由如果3秒(這個值能夠修改)沒有收到主路由的 vrrp 包,便會將本身切換成主路由來接替工做。

而如果原主路由忽然復活了,在接收到當前主路由發來的 vrrp 包是會從中解析其優先級的值,如果本身的優先級較高便會將本身切換成主路由,並告知當前的主路由,而後開始工做。而當前的路由便會將本身切換成 Backup。

若是優先級相等的話,將比較路由器的實際IP,IP值較大的優先權高;

不過若是對外的虛擬路由器IP就是路由器自己的IP的話,該路由器始終將是MASTER,這時的優先級值爲255。

當咱們瞭解了 VRRP 的工做原理以後,咱們會發現其實它與 LVS 的工做原理彷佛差很少呀,都是虛擬出一個 IP 出來給別人,而後本身在內部經過某種機制來進行切換,這應該即是爲何它們有這麼高的契合度的緣由. mark

可是它們仍是有區別的:

LVS 在後面的Server Pool 中每臺均可以同時工做,而 VRRP 同時工做的機器只有一臺,只有當一臺出問題以後纔會啓用另一臺。

因此咱們換着方式讓兩個工具相互結合,讓 keepalived 工做在 Load Balancer 上,作好出口路由的高可用,LVS 在後端作好負載均衡,這樣大大地提升了咱們的服務質量,特別是在忽然的大流量衝擊下。

3、 用keepalived配置高可用集羣

用keepalived配置高可用集羣

  • 準備兩臺機器Master和Backup
  • 兩臺機器都執行yum install -y keepalived
  • 兩臺機器都安裝nginx,其中Mater上已經編譯安裝過nginx,backup上須要yum安裝nginx: yum install -y nginx(或者源碼編譯)
  • 設定vip爲100
  • 編輯master上keepalived配置文件,vim /etc/keepalived/keepalived.conf
  • master上編輯nginx監控腳本,vim /usr/local/sbin/check_ng.sh
  • 給腳本755權限
  • systemctl start keepalived 啓動服務,ip add查看vip地址
  • Backup上編輯配置文件,vim /etc/keepalived/keepalived.conf;state和priority跟master有區別
  • backup上編輯監控腳本,vim /usr/local/sbin/check_ng.sh
  • 給腳本755權限
  • backup上也啓動服務 systemctl start keepalived

3.1 準備工做

準備兩臺機器130和133,130做爲master,133做爲backup

兩臺機器都執行yum install -y keepalived

兩臺機器都安裝nginx,其中130上已經編譯安裝過nginx,133上須要yum安裝nginx

設定VIP爲100(虛擬IP或者叫浮動IP),服務器靠這個VIP對外提供服務

準備階段:先在backup上安裝nginx

wget nginx安裝包  nginx-1.12.1.tar.gz
tar zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1/
./configure --prefix=/usr/local/nginx
make&make install
vim /etc/init.d/nginx
chmod 755 /etc/init.d/nginx
chkconfig -add nginx
chkconfig nginx on
vim /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -t
/etc/init.d/nginx start

3.2 配置master

a. 編輯keepalived配置(先清空後編輯)

[root@xavi ~]# > /etc/keepalived/keepalived.conf
[root@xavi ~]# cat /etc/keepalived/keepalived.conf 
# Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
  • 清空後編輯
[root@xavi ~]# vim /etc/keepalived/keepalived.conf
#出現問題時發送郵件
global_defs {
   notification_email {
     xavi@xavilinux.com  //定義接收郵件人
   }
   notification_email_from root@xavilinux.com //定義發郵件的地址
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    #   自定義腳本,該腳本爲監控Nginx服務的腳本
    interval 3  #檢測腳本,檢測時間3s一次
}

vrrp_instance VI_1 {
    state MASTER   //定義角色爲master
    interface ens33
#vrrp協議使用的網卡是ens33
    virtual_router_id 51
    priority 100  // 權重100,此數值要大於backup
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass xavilinux //定義密碼
    }   
    virtual_ipaddress {
        192.168.72.100
   # 定義VIP,主從都要用到
    }
    track_script {
        chk_nginx
   #加載檢查腳本,這裏和上面的vrr_script後面的字符串保持一致
    }

mark

b. 定義監控Nginx服務腳本

[root@xavi ~]# vim /usr/local/sbin/check_ng.sh
#!/bin/bash
#時間變量,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#若是進程爲0,則啓動nginx,而且再次檢測nginx進程數量,
#若是還爲0,說明nginx沒法啓動,此時須要關閉keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

腳本上systemctl stop keepalived關閉keepalived服務是爲了啓動backup上的keepaliveed時候 不會出現「腦裂」現象。即master和backup的keepaliveed各自搶佔資源,如VIP,外部訪問時候出現兩臺機器同個ip。

腦裂」,在高可用(HA)系統中,當聯繫2個節點的「心跳線」斷開時,
原本爲一總體、動做協調的HA系統,就分裂成爲2個獨立的個體。

因爲相互失去了聯繫,都覺得是對方出了故障。兩個節點上的HA軟件
像「裂腦人」同樣,爭搶「共享資源」、爭起「應用服務」,就會發生嚴重
後果——或者共享資源被瓜分、2邊「服務」都起不來了;或者2邊「服務」
都起來了,但同時讀寫「共享存儲」,致使數據損壞

如何判斷腦裂?

分別在兩臺機查看當前服務器是否擁有虛擬IP,若是兩臺服務器
都擁有,則說明發生了腦裂,證實目前雙機通訊出現問題,產生
此問題的原有在於 兩臺服務器都探測不到組內其餘服務器的狀態
(心跳請求沒法正常響應),私自斷定另外一臺服務器掛起,則搶
佔虛擬IP,腦裂的出現是不被容許的,解決此問題的方法爲檢查
防火牆設置(關閉防火牆)或者使用串口通訊。

c. 給該腳本賦予755權限,不然沒法被keepalived調用

[root@xavi ~]# chmod 755 /usr/local/sbin/check_ng.sh
[root@xavi ~]# systemctl start keepalived

查看

[root@xavi ~]# ps aux |grep keep
root       3037  0.0  0.0 120740  1404 ?        Ss   22:07   0:00 /usr/sbin/keepalived -D
root       3038  0.0  0.1 127480  3284 ?        S    22:07   0:00 /usr/sbin/keepalived -D
root       3039  0.0  0.1 131676  3028 ?        S    22:07   0:01 /usr/sbin/keepalived -D
root       5195  0.0  0.0 112684   976 pts/1    S+   22:44   0:00 grep --color=auto keep
[root@xavi ~]# ps aux |grep nginx
root       5239  0.0  0.0 112680   972 pts/1    S+   22:45   0:00 grep --color=auto nginx
[root@xavi ~]# /etc/init.d/nginx start
Starting nginx (via systemctl):                            [  肯定  ]
[root@xavi ~]# ps aux |grep nginx
root       5287  0.0  0.0  46004  1276 ?        Ss   22:46   0:00 nginx: master process /usr/local/ngin/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     5288  0.0  0.2  50576  4252 ?        S    22:46   0:00 nginx: worker process
nobody     5289  0.0  0.2  50576  4252 ?        S    22:46   0:00 nginx: worker process
root       5301  0.0  0.0 112684   972 pts/1    S+   22:46   0:00 grep --color=auto nginx

開啓keepalived服務後,中止防火牆,關閉SElinux

[root@ying01 ~]# systemctl stop firewalld
[root@ying01 ~]# getenforce 
Disabled
[root@ying01 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination  
[root@xavi ~]# iptables -F
[root@xavi ~]# iptables -nvL
Chain INPUT (policy ACCEPT 9 packets, 616 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 5 packets, 556 bytes)
 pkts bytes target     prot opt in     out     source               destination

3.3 配置backup

a. 修改keepalived配置

[root@xavi-002 ~]# vim /etc/keepalived/keepalived.conf   
[root@xavi-002 ~]# cat /etc/keepalived/keepalived.conf 
global_defs {
   notification_email {
   xavi@xavilinux.com
   }
 #出現問題時發送郵件
   notification_email_from root@xavilinux.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
#上述自定義參數

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
#   自定義腳本,該腳本爲監控Nginx服務的腳本
    interval 3
}
#檢測腳本,檢測時間3s一次

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90  # 權重90,此數值要大於backup
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass xavilinux>com
    }
    virtual_ipaddress {
        192.168.72.100
    }
#   定義VIP
    track_script {
        chk_nginx
    }
#   定義監控chk_nginx
}

b. 添加Nginx服務監控腳本

[root@xavi-002 ~]# vim /usr/local/sbin/check_ng.sh   

#時間變量,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx進程數量
n=`ps -C nginx --no-heading|wc -l`
#若是進程爲0,則啓動nginx,而且再次檢測nginx進程數量,
#若是還爲0,說明nginx沒法啓動,此時須要關閉keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        /etc/init.d/nginx start
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi
[root@xavi-002 ~]#  chmod 755 /usr/local/sbin/check_ng.sh 
[root@xavi-002 ~]#  systemctl start keepalived

4.測試高可用

肯定兩臺機器nginx差別

關閉master、backup防火牆和selinux

[root@xavi nginx-1.12.1]# systemctl stop firewalld
[root@xavi nginx-1.12.1]# getenforce
Disabled

[root@xavi nginx-1.12.1]# iptables -nvL
Chain INPUT (policy ACCEPT 56032 packets, 27M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24     ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0           
    0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 42392 packets, 46M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68
[root@xavi nginx-1.12.1]# iptables -F
[root@xavi nginx-1.12.1]# iptables -nvL
Chain INPUT (policy ACCEPT 7 packets, 468 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 5 packets, 572 bytes)
 pkts bytes target     prot opt in     out     source               destination

啓動master keepalived服務,查看master vip:ip add是否爲192.168.72.100。

[root@xavi ~]# systemctl start keepalived
[root@xavi ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ea:14:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.72.130/24 brd 192.168.72.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.72.100/32 scope global ens33 //以顯示VIP地址
       valid_lft forever preferred_lft forever
    inet6 fe80::1d7a:ffe8:8235:a2a5/64 scope link 
       valid_lft forever preferred_lft forever

查看nginx服務進程,這裏雖然沒有啓動,可是keepalived會自動拉起來nginx服務了

[root@xavi ~]# ps aux|grep nginx
root       2694  0.0  0.0  20500   608 ?        Ss   22:21   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     2695  0.0  0.1  25028  3232 ?        S    22:21   0:00 nginx: worker process
nobody     2696  0.0  0.1  25028  3232 ?        S    22:21   0:00 nginx: worker process
root       5837  0.0  0.0 112684   976 pts/0    S+   22:45   0:00 grep --color=auto nginx

如何區分主和從上的nginx?

Mater機器,是源碼包安裝的nginx

[root@xavi ~]#  mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.html.bak
[root@xavi ~]# vim /usr/local/nginx/html/index.html

This is the Master site!

Backup機器,是源碼包安裝的nginx

[root@xavi-002 ~]# mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.html.bak
[root@xavi-002 ~]# vim /usr/local/nginx/html/index.html

This is for Backup website!

驗證高可用是否生效:

訪問master主頁

mark

訪問VIP主頁

mark

把master的keepalived關閉,模擬master宕機,查看VIP,已經不存在

[root@xavi ~]# systemctl stop keepalived

[root@xavi ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:ea:14:79 brd ff:ff:ff:ff:ff:ff
    inet 192.168.72.130/24 brd 192.168.72.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::1d7a:ffe8:8235:a2a5/64 scope link 
       valid_lft forever preferred_lft forever

查看backup機器上的VIP信息:

[root@xavi-002 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:66:d4:59 brd ff:ff:ff:ff:ff:ff
    inet 192.168.72.133/24 brd 192.168.72.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.72.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7276:ecaf:14ca:5827/64 scope link 
       valid_lft forever preferred_lft forever
[root@xavi-002 ~]# curl -I  192.168.72.100
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Wed, 12 Sep 2018 15:51:09 GMT
Content-Type: text/html
Content-Length: 3700
Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT
Connection: keep-alive
ETag: "5a9e5ebd-e74"
Accept-Ranges: bytes

[root@xavi-002 ~]# curl -I  192.168.72.133
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Wed, 12 Sep 2018 15:51:43 GMT
Content-Type: text/html
Content-Length: 3700
Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT
Connection: keep-alive
ETag: "5a9e5ebd-e74"
Accept-Ranges: bytes

[root@xavi-002 ~]# curl -I  192.168.72.130
curl: (7) Failed connect to 192.168.72.130:80; 拒絕鏈接

總結

在生產環境中,可能會用到2-3臺backup角色, vim /etc/keepalived/keepalived.conf 這裏面的權重調成不通級別,權重越高優先級越高!除了nginx服務的話,還能夠作MySQL的高可用集羣服務。(作mysql的高可用,必定要保證兩邊的數據一致)

相關文章
相關標籤/搜索