構(gòu)建?可?集群Nginx

上一章我們講解了nginx的集群,那么如果碰到下面的問(wèn)題,我們改怎么辦了?
分發(fā)器宕機(jī)怎么辦
數(shù)據(jù)服務(wù)器宕機(jī)怎么辦
別怕,我們有Keepalive
Keepalived的作?是檢測(cè)服務(wù)器的狀態(tài),如果有?臺(tái)web服務(wù)器宕機(jī),或?作出現(xiàn)故障,Keepalived將檢測(cè)到,并將有故障的服務(wù)器從系統(tǒng)中剔除,同時(shí)使?其他服務(wù)器代
替該服務(wù)器的?作,當(dāng)服務(wù)器?作正常后Keepalived?動(dòng)將服務(wù)器加?到服務(wù)器群中,這些?作全部?動(dòng)完成,不需要???涉,需要??做的只是修復(fù)故障的服務(wù)器。
?個(gè)監(jiān)控+?愈的軟件
1:根據(jù)提供地址進(jìn)行下載

http://www.keepalived.org/download.html
wget http://www.keepalived.org/software/keepalived-2.0.8.tar.gz
image.png

2:解壓到文件夾

[root@localhost src]# tar  -zxvf  keepalived-2.2.4.tar.gz
[root@localhost src]# ./configure --prefix=/usr/local/keepalived

3:編譯和安裝

[root@localhost src]#make
[root@localhost src]#make  install

軟件環(huán)境部署
1分發(fā)器 nginx+keepalived
2數(shù)據(jù)服務(wù)器 Nginx
3配置Nginx分發(fā)器
4配置數(shù)據(jù)服務(wù)器??(web01 web02)
5配置keepalived.conf
6測(cè)試

配置Nginx集群

upstream web {
    server 192.168.10.42 max_fails=2 fail_timeout=3;
    server 192.168.10.43 max_fails=2 fail_timeout=3;
}
server {
   listen 80;
   server_name localhost;
   ocation / {
       proxy_pass http://web;
    }
 }

配置keepalived

#找到配置文件,進(jìn)行備份后編輯
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id NGINX_DEVEL
}
#定義一個(gè)腳本,名字叫做check_nginx 
vrrp_script check_nginx {
    script "/etc/keepalived/nginx_pid.sh"   #腳本路徑
    interval 2   #每2s運(yùn)行一次腳本
    fall 1    #失敗次數(shù)1
}
vrrp_instance nginx {   #一個(gè)實(shí)例就是一個(gè)集群,名稱為nginx
     state MASTER    #定義狀態(tài)為主播
     interface ens33    #配置網(wǎng)卡名稱,指向本機(jī)具體的網(wǎng)卡名稱
     mcast_src_ip 192.168.10.40  #宣告自己還活著,閑雜人等都給朕退下
     virtual_router_id 51  #指定vrrp實(shí)例id,范圍0-255
     priority 100  #指定優(yōu)先級(jí),優(yōu)先級(jí)高的將成為master組播
     advert_int 1  #多久發(fā)一次組播
     authentication {
     auth_type PASS
     auth_pass 1111
 }
 track_script {
      check_nginx 
}
 virtual_ipaddress {   #虛擬ip
     192.168.10.213/24
   }
}

關(guān)聯(lián)腳本 nginx_pid.sh(注意是上文中定義的腳本路徑)

#chmod 755 /etc/keepalived/nginx_pid.sh

#vim /etc/keepalived/nginx_pid.sh
#!/bin/bash
nginx_kp_check () {
nginxpid=`ps -C nginx --no-header |wc -l`
if [ $nginxpid -eq 0 ];then
  /usr/local/nginx/sbin/nginx
 sleep 1
   nginxpid=`ps -C nginx --no-header |wc -l`
    if [ $nginxpid -eq 0 ];then
      systemctl stop keepalived
   fi
fi}

啟動(dòng)keepalived

systemctl start keepalived
配置備份Nginx分發(fā)器
backuo.ayitula.com
#cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id NGINX_DEVEL
}
vrrp_script check_nginx {
    script "/etc/keepalived/nginx_pid.sh"
    interval 2
    fall 1
}
vrrp_instance nginx {
     state BACKUP
     interface ens33
     mcast_src_ip 192.168.10.41
     virtual_router_id 51
     priority 90
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
   track_script {
      check_nginx
  }
   virtual_ipaddress {
       192.168.10.213/24
   }
}

大功告成,加油~~~~

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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