欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

keepalived雙機(jī)熱備nginx的配置方法

 更新時(shí)間:2018年03月05日 09:39:08   作者:lpxxn  
這篇文章主要介紹了keepalived雙機(jī)熱備nginx的配置方法,需要的朋友可以參考下

nginx目前是我最常用的反向代理服務(wù),線上環(huán)境為了能更好的應(yīng)對(duì)突發(fā)情況,一般會(huì)使用keepalived雙機(jī)熱備nginx或者使用docker跑nginx集群,keepalived是比較傳統(tǒng)的方式,雖然用docker跑nginx集群更方便,但傳統(tǒng)的方式總是有他的可取之處,并且多學(xué)一些東西也很好。以后也會(huì)寫如何使用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問nginx發(fā)現(xiàn)nginx不可訪問時(shí),就關(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

  這段角本的意思就是說每次的心跳檢查會(huì)執(zhí)行一個(gè)for循環(huá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,換行填寫
 }
 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。其他的地方保持不變,是不是很簡單。

! 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的簡單配置就完成了下面就啟動(dòng)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í)行成功后會(huì)顯示leaving directory  

啟動(dòng)

/usr/local/nginx/sbin/nginx 

檢查

ps aux|grep nginx 

開機(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í)別打開的是哪個(gè)ip上的index.html

vi /usr/local/nginx/html/index.html

nginx重新加載配置

/usr/local/nginx/sbin/nginx -s reload

好了,我們?cè)L問一下

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無法訪問會(huì)把keepalived關(guān)閉,然后轉(zhuǎn)向從節(jié)點(diǎn)

我們?cè)僭L問一下119

 curl 192.168.0.119:81

在118上重新啟動(dòng)nginx和keepalived

再訪問119 返回的網(wǎng)址是118上的index.html

總結(jié)

以上所述是小編給大家介紹的keepalived雙機(jī)熱備nginx的配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 如何實(shí)現(xiàn)Nginx同一端口同時(shí)支持http與https協(xié)議

    如何實(shí)現(xiàn)Nginx同一端口同時(shí)支持http與https協(xié)議

    最近有一個(gè)需求,需要讓一個(gè)端口的http服務(wù)支持https訪問,本文就來介紹一下如何實(shí)現(xiàn)Nginx同一端口同時(shí)支持http與https協(xié)議,感興趣的可以了解一下
    2023-11-11
  • nginx location塊配置小結(jié)

    nginx location塊配置小結(jié)

    nginx可以通過配置文件中的location指令來定義不同的請(qǐng)求匹配規(guī)則和處理邏輯,也就是描述不同請(qǐng)求資源在服務(wù)器的位置或者配置代理轉(zhuǎn)發(fā)路徑,這篇文章主要介紹了nginx location塊配置,需要的朋友可以參考下
    2024-03-03
  • Nginx實(shí)現(xiàn)404頁面的方法小結(jié)

    Nginx實(shí)現(xiàn)404頁面的方法小結(jié)

    這篇文章主要介紹了Nginx實(shí)現(xiàn)404頁面的方法小結(jié),需要的朋友可以參考下
    2017-08-08
  • nginx 訪問限制與訪問控制的實(shí)現(xiàn)

    nginx 訪問限制與訪問控制的實(shí)現(xiàn)

    訪問控制要做的事情是控制客戶端的資源訪問權(quán)限,本文主要介紹了nginx 訪問限制與訪問控制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 深度詳解什么是Nginx正向代理與反向代理

    深度詳解什么是Nginx正向代理與反向代理

    這篇文章主要介紹了Nginx正向代理與Nginx反向代理的區(qū)別,比較易懂,需要的朋友可以參考下
    2023-03-03
  • nginx: [warn]

    nginx: [warn] "log_format" directive used only on "http" lev

    這篇文章主要介紹了nginx: [warn] "log_format" directive used only on "http" level 解決方法,需要的朋友可以參考下
    2014-08-08
  • 使用Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡的全過程

    使用Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡的全過程

    很多用到nginx的地方都是作為靜態(tài)伺服器,這樣可以方便緩存那些靜態(tài)文件,比如CSS,JS,html,htm等文件,下面這篇文章主要給大家介紹了關(guān)于使用Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法

    Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法

    在網(wǎng)絡(luò)世界的大舞臺(tái)上,Nginx 就像是一位兢兢業(yè)業(yè)的交通警察,指揮著網(wǎng)絡(luò)請(qǐng)求的有序流動(dòng),然而,有時(shí)候也會(huì)出現(xiàn)一些讓人頭疼的狀況,比如請(qǐng)求的重復(fù)提交,該如何應(yīng)對(duì)呢?本文介紹了Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法,需要的朋友可以參考下
    2024-07-07
  • Nginx + php 搭建 超性能 WEB 服務(wù)器

    Nginx + php 搭建 超性能 WEB 服務(wù)器

    Nginx ("engine x") 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。
    2010-03-03
  • 在阿里云Centos下如何安裝Nginx

    在阿里云Centos下如何安裝Nginx

    這篇文章主要介紹了阿里云Centos下如何安裝Nginx,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-10-10

最新評(píng)論