Nginx結合keepalived實現(xiàn)集群
Nginx與keepalived實現(xiàn)集群實現(xiàn)的效果
兩臺服務器都安裝Nginx與keepalived:
master服務器的ip(192.168.200.2)
backup服務器的ip(192.168.200.4)
將 master服務器Nginx與keepalived都停掉,在 backup服務器里的瀏覽器輸入http://192.168.188.100,訪問Nginx首頁
備注:192.168.188.100是keepalived的虛擬ip
第一步:準備兩臺服務器,示例如下圖所示

第二步:給兩臺服務器安裝Nginx
在終端里輸入: su root 切換到root用戶角色方便后面輸入指令執(zhí)行操作,如果提示輸入密碼錯誤,退出,在終端里輸入 sudo passwd 按回車鍵 輸入密碼,成功后再輸入 su root 切換到root角色;
安裝nginx.:終端里輸入apt-get install nginx, 如果沒有切換到root , 輸入sudo apt-get install nginx
啟動Nginx:終端里輸入service nginx start
在瀏覽器里輸入服務器的ip地址驗證Nginx啟動成功
master服務器

backup服務器

第三步:給兩臺服務器安裝keepalived
在終端里輸入:apt-get install keepalived,如果沒有切換到root , 輸入sudo apt-get install keepalived
keepalived安裝完之后切換到etc目錄,在終端里輸入:cd /etc,接著輸入:ls,如下圖所示,

切換到keepalived目錄:cd keepalived, ls查看keepalived里的文件,如果里面沒有keepalived.conf和check_nginx.sh文件,分別輸入touch keepalived.conf,touch check_nginx.sh 即創(chuàng)建兩個對應的文件。

編輯keepalived.conf:終端里輸入:vi keepalived.conf
提醒:如果沒有vi指令,需要先安裝vim, 在終端里輸入apt-get install vim

查看master服務器的網(wǎng)卡名稱:輸入ifconfig

master服務器的keepalived.conf 內(nèi)容如下
global_defs {
router_id LVS_MASTER #名稱標記為master,名字隨便取
vrrp_gna_interval 0
}
#加入周期性檢測nginx服務腳本的相關配置
vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動
interval 2 #(檢測腳本執(zhí)行的間隔,單位是秒)
}
vrrp_instance VI_1 {
state MASTER #指定當前節(jié)點為master節(jié)點,只能有一個master,其余只能是backup
interface ens33 #綁定此虛擬路由使用的網(wǎng)卡的名稱,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虛擬路由id,虛擬路由的唯一標識,范圍是0-255,mater和backup節(jié)點需要指定一樣的,相同id為一組
priority 200 #指定當前結點的優(yōu)先級,master節(jié)點要大于backup節(jié)點。
advert_int 1 #指定發(fā)送VRRP通告的間隔,單位是秒
virtual_ipaddress {
192.168.188.100 #指定虛擬ip,自定義的虛擬ip
}
#添加跟蹤(執(zhí)行腳本)
track_script{
check_nginx
}
}
編輯完keepalived.conf 內(nèi)容,在終端里按住鍵盤shift+:(冒號)鍵,然后輸入wq,即退出并保存
backup服務器的網(wǎng)卡名稱

backup服務器的keepalived.conf 內(nèi)容如下
global_defs {
router_id LVS_BACKUP #名稱標記為BACKUP,只要不是MASTER,名字隨便取
vrrp_gna_interval 0
}
#加入周期性檢測nginx服務腳本的相關配置
vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動
interval 2 #(檢測腳本執(zhí)行的間隔,單位是秒)
}
vrrp_instance VI_1 {
state BACKUP #指定當前節(jié)點為master節(jié)點,只能有一個master,其余只能是backup
interface ens33 #綁定此虛擬路由使用的網(wǎng)卡的名稱,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虛擬路由id,虛擬路由的唯一標識,范圍是0-255,mater和backup節(jié)點需要指定一樣的,相同id為一組
priority 199 #指定當前結點的優(yōu)先級,master節(jié)點要大于backup節(jié)點。
advert_int 1 #指定發(fā)送VRRP通告的間隔,單位是秒
virtual_ipaddress {
192.168.188.100 #指定虛擬ip,自定義的虛擬ip, 注意一定是和master的服務器里虛擬ip一樣的
}
#添加跟蹤(執(zhí)行腳本)
track_script{
check_nginx
}
}
兩臺服務器編輯check_nginx.sh:終端里輸入:vi check_nginx.sh

check_nginx.sh內(nèi)容
#!/bin/bash
#檢測nginx是否啟動了
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx沒有啟動就啟動nginx
/root/ydy/nginx/sbin/nginx #重啟nginx,也可以使直接監(jiān)聽應用服務
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗,則停掉keepalived服務,進行VIP轉(zhuǎn)移
killall keepalived
fi
fi
第四步:啟動兩臺服務器的keepalived
在master服務器終端里輸入service keepalived start
查看綁定的網(wǎng)卡

驗證keepalived虛擬ip調(diào)用,在master服務器的瀏覽器輸入http://192.168.188.100

第五步:關閉master服務器的Nginx和keepalived,在 backup服務器里的瀏覽器輸入http://192.168.188.100,訪問Nginx首頁
在master服務器終端里輸入service keepalived stop
在master服務器終端里輸入service nginx stop
在 backup服務器里的瀏覽器輸入http://192.168.188.100

以上就是Nginx與keepalived實現(xiàn)集群的全部內(nèi)容講解,更多相關Nginx keepalived集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Nginx中配置開啟Nginx Status來查看服務器運行狀態(tài)
這篇文章主要介紹了Nginx中配置開啟Nginx Status來查看服務器運行狀態(tài)的方法,Nginx Status為Nginx服務器內(nèi)置的狀態(tài)頁,需要的朋友可以參考下2016-01-01

