本文小編為大家詳細(xì)介紹“keepalived雙機(jī)熱備nginx怎么配置”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“keepalived雙機(jī)熱備nginx怎么配置”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
創(chuàng)新互聯(lián)是一家專業(yè)提供利州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為利州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。
環(huán)境準(zhǔn)備:
2臺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)靈活,可以定時執(zhí)行角本命令,用于心跳檢查,比如,我們訪問nginx發(fā)現(xiàn)nginx不可訪問時,就關(guān)閉keepalived,從而切換到從nginx來實(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
這段角本的意思就是說每次的心跳檢查會執(zhí)行一個for循環(huán),訪問,在for的2次循環(huán)中如果返回的狀態(tài)都不是200就會關(guān)閉keepalived。這個角本在105和118兩臺機(jī)器上都要準(zhǔn)備好。
設(shè)置118機(jī)器上的keepalived為主節(jié)點(diǎn),105機(jī)器上的keepalived為從節(jié)點(diǎn),它們兩個的配置文件差不太多
vi /etc/keepalived/keepalived.conf
118機(jī)器keepalived的配置文件
! configuration file for keepalived vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" # 心跳檢測角本 interval 2 #腳本執(zhí)行間隔,每2s檢測一次 weight -5 #腳本結(jié)果導(dǎo)致的優(yōu)先級變更,檢測失?。_本返回非0)則優(yōu)先級 -5 fall 3 #檢測連續(xù)2次失敗才算確定是真失敗。會用weight減少優(yōu)先級(1-255之間) rise 2 #檢測1次成功就算成功。但不修改優(yōu)先級 } vrrp_instance vi_1 { state master #指定keepalived的角色,master表示此主機(jī)是主服務(wù)器,backup表示此主機(jī)是備用服務(wù)器 interface eth0 #指定監(jiān)測網(wǎng)絡(luò)的接口。實(shí)例綁定的網(wǎng)卡,因為在配置虛擬ip的時候必須是在已有的網(wǎng)卡上添加的 mcast_src_ip 192.168.0.118 ## 發(fā)送多播數(shù)據(jù)包時的源ip地址 virtual_router_id 51 #虛擬路由標(biāo)識,master和backup必須是一致的 priority 100 #定義優(yōu)先級,數(shù)字越大,優(yōu)先級越高 advert_int 2 #設(shè)定master與backup負(fù)載均衡器之間同步檢查的時間間隔,單位是秒 authentication { #設(shè)置驗證類型和密碼。主從必須一樣 auth_type pass #設(shè)置vrrp驗證類型,主要有pass和ah兩種 auth_pass 1111 #設(shè)置vrrp驗證密碼,在同一個vrrp_instance下,master與backup必須使用相同的密碼才能正常通信 } virtual_ipaddress { 192.168.0.119 #vrrp 虛擬地址 如果有多個vip,換行填寫 } track_script { chk_nginx # 心跳腳本,即在 vrrp_script 部分指定的名字 } }
115機(jī)器上的角本對上面的角本稍做變動即可
改變 state master -> state backup,priority 100 -> priority 90,mcast_src_ip 192.168.0.118 -> mcast_src_ip 192.168.0.105。其他的地方保持不變,是不是很簡單。
! 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的簡單配置就完成了下面就啟動keepalived
service keepalived start
安裝nginx
查看nginx的依賴庫是否完整
rpm -qa zlib rpm -qa zlib-devel rpm -qa openssl rpm -qa openssl-devel rpm -qa pcre rpm -qa pcre-devel rpm -qa gcc
如果沒有就安裝
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í)行成功后會顯示leaving directory
啟動
/usr/local/nginx/sbin/nginx
檢查
ps aux|grep nginx
開機(jī)啟動
vi /etc/rc.local
添加一行
/usr/local/nginx/sbin/nginx
因為我的機(jī)器上80端口被別的應(yīng)用占用了,所以就修改105和118的 nginx.conf 把端口80 修改為81
vi /usr/local/nginx/conf/nginx.conf
分別個性105 和119上的index.html 加上一個ip以便們們識別打開的是哪個ip上的index.html
vi /usr/local/nginx/html/index.html
nginx重新加載配置
/usr/local/nginx/sbin/nginx -s reload
好了,我們訪問一下
curl 192.168.0.119:81
返回的html是 118機(jī)器上的index.html
現(xiàn)在我們把118的nginx停止
/usr/local/nginx/sbin/nginx -s stop
這時118上的keepalived的心跳檢查角本發(fā)現(xiàn)nginx無法訪問會把keepalived關(guān)閉,然后轉(zhuǎn)向從節(jié)點(diǎn)
我們再訪問一下119
curl 192.168.0.119:81
在118上重新啟動nginx和keepalived
再訪問119 返回的網(wǎng)址是118上的index.html
讀到這里,這篇“keepalived雙機(jī)熱備nginx怎么配置”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。