首頁 > 運維 > Nginx > 主體

nginx怎麼結合keepalived實現高可用

WBOY
發布: 2023-05-12 08:43:11
轉載
1232 人瀏覽過

keepalived的介紹

keepalived的作用是偵測伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,keepalived將會偵測到,並將故障的伺服器從系統中剔除,同時使用其他伺服器取代該伺服器的工作,當伺服器工作正常後keepalived自動將伺服器加入到伺服器群組中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的伺服器。

系統架構圖

nginx怎麼結合keepalived實現高可用

#實作步驟

1.環境配置

1.1 安裝nginx

安裝相關依賴

yum install pcre-devel zlib zlib-devel openssl openssl-devel
登入後複製

上傳解壓縮壓縮套件

tar zxvf nginx-1.12.2.tar.gz
登入後複製

建立目錄,偵測設定

mkdir -p /usr/local/nginx
./configure --prefix=/usr/local/nginx
登入後複製

預先編譯與安裝

make && make install
登入後複製

啟動、停止相關指令

cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s start
登入後複製

1.2 安裝keepalived

yum install -y keepalived
登入後複製

2.主機設定

##修改keepalived設定檔


vim /etc/keepalived/keepalived.conf
登入後複製

修改的內容如下


#新增的配置
vrrp_script chk_http_port {
 script "/shell/nginx_check.sh" #脚本地址
 interval 2 #检测脚本执行的间隔
 weight 2 #比重
}

vrrp_instance vi_1 {
 state master #主服务器为master,从服务器为backup
 interface eth0 #网卡
 virtual_router_id 51 #主、备机的virtual_router_id必须相同
 priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100
 advert_int 1
 authentication {
  auth_type pass
  auth_pass 1111
 }
 #虚拟ip地址
 virtual_ipaddress {
  192.168.126.88
 }
}
登入後複製

建立編寫腳本檔案


mkdir /shell/nginx_check.sh
vim /shell/nginx_check.sh
登入後複製

腳本檔案內容如下


#!/bin/bash
a=`ps -c nginx –no-header |wc -l`
if [ $a -eq 0 ];then
  /usr/local/nginx/sbin/nginx
  sleep 2
  if [ `ps -c nginx --no-header |wc -l` -eq 0 ];then
    killall keepalived
  fi
fi
登入後複製

3.從機設定

修改keepalived設定檔


vrrp_instance vi_1 {
  state backup #主服务器为master,从服务器为backup
  interface eth0 #网卡
  virtual_router_id 51 #主、备机的virtual_router_id必须相同
  priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小
  advert_int 1
  authentication {
    auth_type pass
    auth_pass 1111
  }
  #虚拟ip地址
  virtual_ipaddress {
    192.168.126.88
  }
}
登入後複製

4.啟動服務
##啟動

service keepalived start
登入後複製

查看虛擬ip位址

ip addr
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown 
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up qlen 1000
  link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
  inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0
  inet 192.168.126.88/32 scope global eth0
  inet6 fe80::20c:29ff:fe4f:31ce/64 scope link 
    valid_lft forever preferred_lft forever
登入後複製

5.關閉防火牆測試


關閉防火牆

service iptables stop
#查看防火墙是否开机自启动
chkconfig --list | grep iptables
chkconfig iptables off
登入後複製

登陸虛擬ip位址查看

http://192.168.126.88/
登入後複製

以上是nginx怎麼結合keepalived實現高可用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!