這篇文章給大家分享的是有關(guān)keepalived雙機(jī)熱備nginx如何配置的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10多年,專業(yè)且經(jīng)驗(yàn)豐富。10多年網(wǎng)站優(yōu)化營(yíng)銷經(jīng)驗(yàn),我們已為上千中小企業(yè)提供了成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)解決方案,按需求定制開(kāi)發(fā),設(shè)計(jì)滿意,售后服務(wù)無(wú)憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!nginx目前是我最常用的反向代理服務(wù),線上環(huán)境為了能更好的應(yīng)對(duì)突發(fā)情況,一般會(huì)使用keepalived雙機(jī)熱備nginx或者使用docker跑nginx集群,keepalived是比較傳統(tǒng)的方式,雖然用docker跑nginx集群更方便,但傳統(tǒng)的方式總是有他的可取之處,并且多學(xué)一些東西也很好。以后也會(huì)寫(xiě)如何使用docker跑nginx集群。
環(huán)境準(zhǔn)備:
2臺(tái)centos: 192.168.0.105 和192.168.0.118, 虛擬IP(VIP)為192.168.0.119
配置keepavlived
分別在105和118上安裝keepalived
yum install keepalived
準(zhǔn)備心跳角本
keepalived的配置相當(dāng)靈活,可以定時(shí)執(zhí)行角本命令,用于心跳檢查,比如,我們?cè)L問(wèn)nginx發(fā)現(xiàn)nginx不可訪問(wèn)時(shí),就關(guān)閉keepalived,從而切換到從nginx來(lái)實(shí)現(xiàn)不間斷的服務(wù)支持。
vi /etc/keepalived/keepalived.conf
#!/bin/bash count=0 for (( k=0; k<2; k++ )) do check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://localhost:81 -o /dev/null ) if [ "$check_code" != "200" ]; then count=count +1 continue else count = 0 break fi done if [ "$count" != "0" ]; then killall keepalived exit 1 else exit 0 fi
這段角本的意思就是說(shuō)每次的心跳檢查會(huì)執(zhí)行一個(gè)for循環(huán),訪問(wèn)http://localhost:81,在for的2次循環(huán)中如果返回的狀態(tài)都不是200就會(huì)關(guān)閉keepalived。這個(gè)角本在105和118兩臺(tái)機(jī)器上都要準(zhǔn)備好。
設(shè)置118機(jī)器上的keepalived為主節(jié)點(diǎn),105機(jī)器上的keepalived為從節(jié)點(diǎn),它們兩個(gè)的配置文件差不太多
vi /etc/keepalived/keepalived.conf
118機(jī)器keepalived的配置文件
! Configuration File for keepalived vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" # 心跳檢測(cè)角本 interval 2 #腳本執(zhí)行間隔,每2s檢測(cè)一次 weight -5 #腳本結(jié)果導(dǎo)致的優(yōu)先級(jí)變更,檢測(cè)失?。_本返回非0)則優(yōu)先級(jí) -5 fall 3 #檢測(cè)連續(xù)2次失敗才算確定是真失敗。會(huì)用weight減少優(yōu)先級(jí)(1-255之間) rise 2 #檢測(cè)1次成功就算成功。但不修改優(yōu)先級(jí) } vrrp_instance VI_1 { state MASTER #指定keepalived的角色,MASTER表示此主機(jī)是主服務(wù)器,BACKUP表示此主機(jī)是備用服務(wù)器 interface eth0 #指定監(jiān)測(cè)網(wǎng)絡(luò)的接口。實(shí)例綁定的網(wǎng)卡,因?yàn)樵谂渲锰摂MIP的時(shí)候必須是在已有的網(wǎng)卡上添加的 mcast_src_ip 192.168.0.118 ## 發(fā)送多播數(shù)據(jù)包時(shí)的源IP地址 virtual_router_id 51 #虛擬路由標(biāo)識(shí),MASTER和BACKUP必須是一致的 priority 100 #定義優(yōu)先級(jí),數(shù)字越大,優(yōu)先級(jí)越高 advert_int 2 #設(shè)定MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { #設(shè)置驗(yàn)證類型和密碼。主從必須一樣 auth_type PASS #設(shè)置vrrp驗(yàn)證類型,主要有PASS和AH兩種 auth_pass 1111 #設(shè)置vrrp驗(yàn)證密碼,在同一個(gè)vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信 } virtual_ipaddress { 192.168.0.119 #VRRP 虛擬地址 如果有多個(gè)VIP,換行填寫(xiě) } track_script { chk_nginx # 心跳腳本,即在 vrrp_script 部分指定的名字 } }
115機(jī)器上的角本對(duì)上面的角本稍做變動(dòng)即可
改變 state MASTER -> state BACKUP,priority 100 -> priority 90,mcast_src_ip 192.168.0.118 -> mcast_src_ip 192.168.0.105。其他的地方保持不變,是不是很簡(jiǎn)單。
! Configuration File for keepalived vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -5 } vrrp_instance VI_1 { state BACKUP # 修改 interface eth0 mcast_src_ip 192.168.0.105 # 修改 為本機(jī)IP virtual_router_id 51 priority 90 #數(shù)字變小 advert_int 2 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.119 } track_script { chk_nginx } }
到這里keepalived的簡(jiǎn)單配置就完成了下面就啟動(dòng)keepalived
service keepalived start
安裝Nginx
查看nginx的依賴庫(kù)是否完整
rpm -qa zlib rpm -qa zlib-devel rpm -qa openssl rpm -qa openssl-devel rpm -qa pcre rpm -qa pcre-devel rpm -qa gcc
如果沒(méi)有就安裝
yum -y install gcc zlib zlib-devel openssl openssl-devel pcre-devel
下載并解壓nginx
mkdir nginxsrc cd nginxsrc/
wget http://nginx.org/download/nginx-1.13.9.tar.gz tar zxvf nginx-1.13.9.tar.gz cd nginx-1.13.9/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
安裝在/usr/local/nginx/sbin/nginx 目錄下
make&&make install
執(zhí)行成功后會(huì)顯示leaving directory
啟動(dòng)
/usr/local/nginx/sbin/nginx
檢查
ps aux|grep nginx
開(kāi)機(jī)啟動(dòng)
vi /etc/rc.local
添加一行
/usr/local/nginx/sbin/nginx
因?yàn)槲业臋C(jī)器上80端口被別的應(yīng)用占用了,所以就修改105和118的 nginx.conf 把端口80 修改為81
vi /usr/local/nginx/conf/nginx.conf
分別個(gè)性105 和119上的index.html 加上一個(gè)ip以便們們識(shí)別打開(kāi)的是哪個(gè)ip上的index.html
vi /usr/local/nginx/html/index.html
nginx重新加載配置
/usr/local/nginx/sbin/nginx -s reload
好了,我們?cè)L問(wèn)一下
curl 192.168.0.119:81
返回的html是 118機(jī)器上的index.html
現(xiàn)在我們把118的nginx停止
/usr/local/nginx/sbin/nginx -s stop
這時(shí)118上的keepalived的心跳檢查角本發(fā)現(xiàn)nginx無(wú)法訪問(wèn)會(huì)把keepalived關(guān)閉,然后轉(zhuǎn)向從節(jié)點(diǎn)
我們?cè)僭L問(wèn)一下119
curl 192.168.0.119:81
在118上重新啟動(dòng)nginx和keepalived
再訪問(wèn)119 返回的網(wǎng)址是118上的index.html
感謝各位的閱讀!關(guān)于“keepalived雙機(jī)熱備nginx如何配置”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)名稱:keepalived雙機(jī)熱備nginx如何配置-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.rwnh.cn/article46/djgdhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、微信公眾號(hào)、營(yíng)銷型網(wǎng)站建設(shè)、面包屑導(dǎo)航、網(wǎng)站營(yíng)銷、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容