使用keepalive實現nginx反向代理高可用

簡介:

在網站架構中,為了分散客戶端對服務器的訪問壓力,可以使用nginx作為反向代理。但是使用一個nginx作為代理服務器必定會面對單點故障的情況,所以一般使用多臺nginx反代服務器,而使用多臺nginx服務器還要面對如何協調調度的問題。在此,我給大家介紹使用keepalive協調調度nginx反代服務器的方法。

 

keepalive簡介

說到keepalive就要說到他的實現核心——VRRP協議。VRRP即虛擬路由器冗余協議,最初是為了解決多個路由器熱備份而制定的。它是通過主路由器定時在網絡中發送主路由器信息,通知各個備路由器,當備路由器接收不到信息就會通過優先級競選成為主路由器。

 

VRRP的優先級范圍是0-255,可配置范圍1-254,其中0給路由器放棄MASTER位置時候使用,255保留給IP地址的擁有者使用。如果路由器的IP地址為虛擬IP地址時,只要其工作正常,則為MASTER路由器。

 

VRRP提供了三種認證方式:

1 無認證;

2 簡單字符認證:不能超過8個字符;

3 MD5認證。

 

實驗器材

 使用keepalive實現nginx反向代理高可用

lvs1 Centos7.3 172.18.55.74

lvs2 Centos7.3 172.18.55.75

web1 Centos6.8  172.18.55.61

web2 Centos7.3  172.18.55.71

 

實驗步驟:

1 安裝nginx反向代理服務

2 安裝keepalive服務

 

實驗過程:

1 安裝nginx反向代理服務

為了簡便,這里分別在web1web2上使用yum源安裝的方式

#yum install –y nginx

 

修改nginx的配置文件

# vim /etc/nginx/nginx.conf

增加服務器組

upstream websvrs {
         server 172.18.55.61:80;
         server 172.18.55.71:80;
         server 127.0.0.1:8080 backup; #sorry Server
}

增加sorry server配置

server {
         listen 8080;
         root /etc/nginx/html;
         index sorry.html;
         location / {
}
}

增加sorry server頁面文件

vim /etc/nginx/html/sorry.html
 
<h1> Sorry !!! <h1>
 

2 安裝keepalive服務

使用yum安裝

# yum install –y keepalived

 

修改配置文件

# vim /etc/keepalived/keepalived.conf
 
! Configuration File for keepalived
 
global_defs {
   notification_email {                        
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_MASTER #備服務器LVS_BACKUP
   vrrp_mcast_group4 224.0.109.55 #組播地址,一個虛擬路由器組設置相同
}
 
vrrp_instance VI_1 {
    state MASTER #備服務器BACKUP
    interface ens33 #網卡名
    virtual_router_id 155 #虛擬路由器ID,主備設置相同
    priority 100 #優先級1-254,備服務器98
    advert_int 1 #網絡通知時間間隔
    authentication {
        auth_type PASS #認證方式為密碼
        auth_pass GOOD #密碼為GOOD,最多8位
    }
    virtual_ipaddress {
        172.18.55.100/16 dev ens33 #指定虛擬IP地址和接口網卡
    }
    track_script {
        ngxstatus #調用nginx狀態監測腳本
    }
    notify_backup "/etc/keepalived/notify.sh backup" #如果nginx的狀態改為了BACKUP,則執行此腳本
}
 
vrrp_script ngxstatus { #nginx狀態監測腳本
        script "killall -0 nginx && exit 0 || exit 1"
        interval 1
        weight -5
}

 

增加配置nginx重啟腳本,省略了非必要步驟

 

vim /etc/ keepalived/notify.sh
 
#!/bin/bash
 
myservice='nginx.service'
 
case $1 in
 
backup)
        systemctl restart $myservice;;
esac

原創文章,作者:realmaster,如若轉載,請注明出處:http://www.www58058.com/75869

(0)
realmasterrealmaster
上一篇 2017-05-15
下一篇 2017-05-15

相關推薦

  • DNS服務器類型及查詢過程

    什么是DNS   DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。 DNS域名稱   域名系統作為一個層次結構和分布式數據庫,包含各種類型的數據,…

    Linux干貨 2017-02-08
  • 馬哥教育網絡班22期+第1周課程練習

    1、描述計算機的組成及其功能 CPU:運算器、控制器、寄存器、緩存 存儲器:內存,RAM(Random Access Memory) Input:下指令,提供數據等 Output:輸出數據加工的結果 2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 Debian系列         ubuntu &n…

    Linux干貨 2016-08-15
  • N21_第x周_Storm_01_單機實踐篇

       這2周沒有按馬哥安排的課程走,因公司需要,大家一直在試嘗大數據這塊。作業不能不做,也不知道馬哥哪周的作業會有storm,只好先將這段時間的實驗慢慢記錄下來(其它flume、kafka、spark等本周會慢慢補充),等知道具體的作業題目后,再完善。 實驗目的   了解storm的原理,并用storm單機版實驗加深理解,為后面…

    Linux干貨 2016-09-15
  • DNS資源記錄類型

      資源記錄   資源記錄(Resource Records),簡稱RRs。是指每個域所包含的與之相關的資源。例如,每個RR都包括這個域的所屬(RR是從哪個域名中得到的),類型(什么樣的資源存在于這個RR中),TTL(time to live,存活時間)等等。 DNS包括七大資源記錄 A記錄:也稱為主機記錄,是DNS名稱到IP地址的映射,用于正向解…

    Linux干貨 2017-02-08
  • N26-第三周博客作業

    1、  列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 命令:who | cut -d' ' -f1 | sort –u 涉及知識點: l  who命令 作用:查看當前所有的登錄會話 l  cut命令 作用:將文本內容按照指定內容分割,然后取出指定字段。 常用選項: &…

    Linux干貨 2017-02-10
  • Nginx之ngx_http_proxy_module模塊詳解

    一、正反向代理簡介       1、正向代理:局域網內的機器借助于代理服務器訪問局域網外的網站          這時正向代理的功能:         &nbs…

    2017-06-25
欧美性久久久久