Nginx結(jié)合keepalived實現(xiàn)集群
Nginx與keepalived實現(xiàn)集群實現(xiàn)的效果
兩臺服務(wù)器都安裝Nginx與keepalived:
master服務(wù)器的ip(192.168.200.2)
backup服務(wù)器的ip(192.168.200.4)
將 master服務(wù)器Nginx與keepalived都停掉,在 backup服務(wù)器里的瀏覽器輸入http://192.168.188.100,訪問Nginx首頁
備注:192.168.188.100是keepalived的虛擬ip
第一步:準備兩臺服務(wù)器,示例如下圖所示
第二步:給兩臺服務(wù)器安裝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
在瀏覽器里輸入服務(wù)器的ip地址驗證Nginx啟動成功
master服務(wù)器
backup服務(wù)器
第三步:給兩臺服務(wù)器安裝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)建兩個對應(yīng)的文件。
編輯keepalived.conf:終端里輸入:vi keepalived.conf
提醒:如果沒有vi指令,需要先安裝vim, 在終端里輸入apt-get install vim
查看master服務(wù)器的網(wǎng)卡名稱:輸入ifconfig
master服務(wù)器的keepalived.conf 內(nèi)容如下
global_defs { router_id LVS_MASTER #名稱標記為master,名字隨便取 vrrp_gna_interval 0 } #加入周期性檢測nginx服務(wù)腳本的相關(guān)配置 vrrp_script check_nginx{ script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動 interval 2 #(檢測腳本執(zhí)行的間隔,單位是秒) } vrrp_instance VI_1 { state MASTER #指定當(dāng)前節(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 #指定當(dāng)前結(jié)點的優(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ù)器的網(wǎng)卡名稱
backup服務(wù)器的keepalived.conf 內(nèi)容如下
global_defs { router_id LVS_BACKUP #名稱標記為BACKUP,只要不是MASTER,名字隨便取 vrrp_gna_interval 0 } #加入周期性檢測nginx服務(wù)腳本的相關(guān)配置 vrrp_script check_nginx{ script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測nginx是否啟動 interval 2 #(檢測腳本執(zhí)行的間隔,單位是秒) } vrrp_instance VI_1 { state BACKUP #指定當(dāng)前節(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 #指定當(dāng)前結(jié)點的優(yōu)先級,master節(jié)點要大于backup節(jié)點。 advert_int 1 #指定發(fā)送VRRP通告的間隔,單位是秒 virtual_ipaddress { 192.168.188.100 #指定虛擬ip,自定義的虛擬ip, 注意一定是和master的服務(wù)器里虛擬ip一樣的 } #添加跟蹤(執(zhí)行腳本) track_script{ check_nginx } }
兩臺服務(wù)器編輯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)聽?wèi)?yīng)用服務(wù) if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗,則停掉keepalived服務(wù),進行VIP轉(zhuǎn)移 killall keepalived fi fi
第四步:啟動兩臺服務(wù)器的keepalived
在master服務(wù)器終端里輸入service keepalived start
查看綁定的網(wǎng)卡
驗證keepalived虛擬ip調(diào)用,在master服務(wù)器的瀏覽器輸入http://192.168.188.100
第五步:關(guān)閉master服務(wù)器的Nginx和keepalived,在 backup服務(wù)器里的瀏覽器輸入http://192.168.188.100,訪問Nginx首頁
在master服務(wù)器終端里輸入service keepalived stop
在master服務(wù)器終端里輸入service nginx stop
在 backup服務(wù)器里的瀏覽器輸入http://192.168.188.100
以上就是Nginx與keepalived實現(xiàn)集群的全部內(nèi)容講解,更多相關(guān)Nginx keepalived集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Nginx 13: Permission denied 解決方案
這篇文章主要介紹了詳解Nginx 13: Permission denied 解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07nginx?proxy_pass轉(zhuǎn)發(fā)規(guī)則解讀
這篇文章主要介紹了nginx?proxy_pass轉(zhuǎn)發(fā)規(guī)則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 詳解
本文解決的是 Flask 最后一公里的問題:Linux 部署,需要的朋友可以參考下2017-12-12nginx配置請求轉(zhuǎn)發(fā)不生效的實現(xiàn)
本文主要介紹了nginx配置請求轉(zhuǎn)發(fā)不生效的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02