Nginx結(jié)合keepalived實(shí)現(xiàn)集群
Nginx與keepalived實(shí)現(xiàn)集群實(shí)現(xiàn)的效果
兩臺(tái)服務(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,訪問(wèn)Nginx首頁(yè)
備注:192.168.188.100是keepalived的虛擬ip
第一步:準(zhǔn)備兩臺(tái)服務(wù)器,示例如下圖所示
第二步:給兩臺(tái)服務(wù)器安裝Nginx
在終端里輸入: su root 切換到root用戶(hù)角色方便后面輸入指令執(zhí)行操作,如果提示輸入密碼錯(cuò)誤,退出,在終端里輸入 sudo passwd 按回車(chē)鍵 輸入密碼,成功后再輸入 su root 切換到root角色;
安裝nginx.:終端里輸入apt-get install nginx, 如果沒(méi)有切換到root , 輸入sudo apt-get install nginx
啟動(dòng)Nginx:終端里輸入service nginx start
在瀏覽器里輸入服務(wù)器的ip地址驗(yàn)證Nginx啟動(dòng)成功
master服務(wù)器
backup服務(wù)器
第三步:給兩臺(tái)服務(wù)器安裝keepalived
在終端里輸入:apt-get install keepalived,如果沒(méi)有切換到root , 輸入sudo apt-get install keepalived
keepalived安裝完之后切換到etc目錄,在終端里輸入:cd /etc,接著輸入:ls,如下圖所示,
切換到keepalived目錄:cd keepalived, ls查看keepalived里的文件,如果里面沒(méi)有keepalived.conf和check_nginx.sh文件,分別輸入touch keepalived.conf,touch check_nginx.sh 即創(chuàng)建兩個(gè)對(duì)應(yīng)的文件。
編輯keepalived.conf:終端里輸入:vi keepalived.conf
提醒:如果沒(méi)有vi指令,需要先安裝vim, 在終端里輸入apt-get install vim
查看master服務(wù)器的網(wǎng)卡名稱(chēng):輸入ifconfig
master服務(wù)器的keepalived.conf 內(nèi)容如下
global_defs { router_id LVS_MASTER #名稱(chēng)標(biāo)記為master,名字隨便取 vrrp_gna_interval 0 } #加入周期性檢測(cè)nginx服務(wù)腳本的相關(guān)配置 vrrp_script check_nginx{ script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測(cè)nginx是否啟動(dòng) interval 2 #(檢測(cè)腳本執(zhí)行的間隔,單位是秒) } vrrp_instance VI_1 { state MASTER #指定當(dāng)前節(jié)點(diǎn)為master節(jié)點(diǎn),只能有一個(gè)master,其余只能是backup interface ens33 #綁定此虛擬路由使用的網(wǎng)卡的名稱(chēng),使用ifconfig或者ip addr查看 virtual_router_id 99 #指定虛擬路由id,虛擬路由的唯一標(biāo)識(shí),范圍是0-255,mater和backup節(jié)點(diǎn)需要指定一樣的,相同id為一組 priority 200 #指定當(dāng)前結(jié)點(diǎn)的優(yōu)先級(jí),master節(jié)點(diǎn)要大于backup節(jié)點(diǎn)。 advert_int 1 #指定發(fā)送VRRP通告的間隔,單位是秒 virtual_ipaddress { 192.168.188.100 #指定虛擬ip,自定義的虛擬ip } #添加跟蹤(執(zhí)行腳本) track_script{ check_nginx } }
編輯完keepalived.conf 內(nèi)容,在終端里按住鍵盤(pán)shift+:(冒號(hào))鍵,然后輸入wq,即退出并保存
backup服務(wù)器的網(wǎng)卡名稱(chēng)
backup服務(wù)器的keepalived.conf 內(nèi)容如下
global_defs { router_id LVS_BACKUP #名稱(chēng)標(biāo)記為BACKUP,只要不是MASTER,名字隨便取 vrrp_gna_interval 0 } #加入周期性檢測(cè)nginx服務(wù)腳本的相關(guān)配置 vrrp_script check_nginx{ script "/etc/keepalived/check_nginx.sh" #心跳執(zhí)行的腳本,檢測(cè)nginx是否啟動(dòng) interval 2 #(檢測(cè)腳本執(zhí)行的間隔,單位是秒) } vrrp_instance VI_1 { state BACKUP #指定當(dāng)前節(jié)點(diǎn)為master節(jié)點(diǎn),只能有一個(gè)master,其余只能是backup interface ens33 #綁定此虛擬路由使用的網(wǎng)卡的名稱(chēng),使用ifconfig或者ip addr查看 virtual_router_id 99 #指定虛擬路由id,虛擬路由的唯一標(biāo)識(shí),范圍是0-255,mater和backup節(jié)點(diǎn)需要指定一樣的,相同id為一組 priority 199 #指定當(dāng)前結(jié)點(diǎn)的優(yōu)先級(jí),master節(jié)點(diǎn)要大于backup節(jié)點(diǎn)。 advert_int 1 #指定發(fā)送VRRP通告的間隔,單位是秒 virtual_ipaddress { 192.168.188.100 #指定虛擬ip,自定義的虛擬ip, 注意一定是和master的服務(wù)器里虛擬ip一樣的 } #添加跟蹤(執(zhí)行腳本) track_script{ check_nginx } }
兩臺(tái)服務(wù)器編輯check_nginx.sh:終端里輸入:vi check_nginx.sh
check_nginx.sh內(nèi)容
#!/bin/bash #檢測(cè)nginx是否啟動(dòng)了 A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then #如果nginx沒(méi)有啟動(dòng)就啟動(dòng)nginx /root/ydy/nginx/sbin/nginx #重啟nginx,也可以使直接監(jiān)聽(tīng)?wèi)?yīng)用服務(wù) if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗,則停掉keepalived服務(wù),進(jìn)行VIP轉(zhuǎn)移 killall keepalived fi fi
第四步:?jiǎn)?dòng)兩臺(tái)服務(wù)器的keepalived
在master服務(wù)器終端里輸入service keepalived start
查看綁定的網(wǎng)卡
驗(yàn)證keepalived虛擬ip調(diào)用,在master服務(wù)器的瀏覽器輸入http://192.168.188.100
第五步:關(guān)閉master服務(wù)器的Nginx和keepalived,在 backup服務(wù)器里的瀏覽器輸入http://192.168.188.100,訪問(wèn)Nginx首頁(yè)
在master服務(wù)器終端里輸入service keepalived stop
在master服務(wù)器終端里輸入service nginx stop
在 backup服務(wù)器里的瀏覽器輸入http://192.168.188.100
以上就是Nginx與keepalived實(shí)現(xiàn)集群的全部?jī)?nèi)容講解,更多相關(guān)Nginx keepalived集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Nginx 13: Permission denied 解決方案
這篇文章主要介紹了詳解Nginx 13: Permission denied 解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07詳解如何通過(guò)nginx進(jìn)行服務(wù)的負(fù)載均衡
負(fù)載均衡器可以將用戶(hù)請(qǐng)求根據(jù)對(duì)應(yīng)的負(fù)載均衡算法分發(fā)到應(yīng)用集群中的一臺(tái)服務(wù)器進(jìn)行處理,本文主要為大家詳細(xì)介紹了如何通過(guò)nginx進(jìn)行服務(wù)的負(fù)載均衡,需要的可以參考下2023-11-11nginx?proxy_pass轉(zhuǎn)發(fā)規(guī)則解讀
這篇文章主要介紹了nginx?proxy_pass轉(zhuǎn)發(fā)規(guī)則,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Nginx反代Ollama接口跨域無(wú)法逐字輸出問(wèn)題詳解
這篇文章主要介紹了在本地部署DeepSeek模型,并通過(guò)Ollama管理,內(nèi)網(wǎng)穿透到公網(wǎng),再使用Nginx反向代理Ollama接口時(shí)遇到的跨域問(wèn)題,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03Nginx 如何部署指定文件夾下的項(xiàng)目(本地測(cè)試)
這篇文章主要介紹了Nginx 如何部署指定文件夾下的項(xiàng)目(本地測(cè)試),分為配置vue.config.js,指定生成環(huán)境的包,配置路由模式為hash(history模式刷新后,找不到頁(yè)面),本文講解的非常詳細(xì),需要的朋友可以參考下2024-01-01阿里云部署Ubuntu 1.4 Flask + WSGI + Nginx 詳解
本文解決的是 Flask 最后一公里的問(wèn)題:Linux 部署,需要的朋友可以參考下2017-12-12nginx配置請(qǐng)求轉(zhuǎn)發(fā)不生效的實(shí)現(xiàn)
本文主要介紹了nginx配置請(qǐng)求轉(zhuǎn)發(fā)不生效的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02