keepalived+nginx 模型示例

原理為:

調度器 利用 keepalived 保持高可用性,實現對系統的監控和VIP 的floating

NGINX 利用upstream模塊進行調度

關鍵點:

keepalived 對NGINX 狀態的監控: //利用配置文件中設定的腳本對調度器的nginx 進程的監控

實驗步驟:

基于上一篇LVS-DR架構來做,具體LVS-DR架構請參考上一篇

  • 先設置主備單VIP 式LVS架構
    • 調度器分別安裝nginx

      #yum install nginx -y

    • 修改配置文件,填加反代設置 /etc/nginx/nginx.conf

      upstream websrvs{

      server 172.18.48.63:80 ;

      server 172.18.48.64:80 ;

      server 127.0.0.1:80 backup;

      }

      注:這里是最基本的配置

      location / {

      proxy_pass http://websrvs;

      }

    • 配置keepalived 配置文件

      訂制監控腳本:

      vrrp_script nginxstatus {

      script “kill -0 nginx && exit 0 || exit 1”

      interval 1

      weight -5

      }

      調用腳本:

      track_script {

      nginxstatus

      }

    • 啟動 nginx 和 keepalived 服務

      service nginx start

      service keepalived start

    • 測試鏈接:
      • keepalived+nginx 模型示例
      • 循環鏈接測試

        keepalived+nginx 模型示例

  • 現在構建雙主模型 // 即再次配置一套keepalived
    • 備調度器設置

    keepalived+nginx 模型示例

    從調度器設置

    keepalived+nginx 模型示例

    重新啟動keepalived

    #service keepalived restart

    VIP分布:

    keepalived+nginx 模型示例

    keepalived+nginx 模型示例

    測試鏈接:

    keepalived+nginx 模型示例

  • 現在停掉一個調度器中的nginx服務:
    • VIP地址 已經轉移;再次鏈接實驗
    • keepalived+nginx 模型示例
    • 再次鏈接: //成功
    • keepalived+nginx 模型示例

    • 現在測驗nginx 的調度算法為ip_hash 時,VIP Floating 會不會帶來影響:

      預想應該不會受影響,nginx 的哈希算法不變的話就不會變

      • keepalived+nginx 模型示例
      • 注: ip_hash 不能于backup 共存,
      • 官方說明:

        If one of the servers needs to be temporarily removed, it should be marked with the down parameter in order to preserve the current hashing of client IP addresses.

      • 重啟服務:

        service nginx restart

      • 鏈接測試:

        雙調度器都在線時:

        keepalived+nginx 模型示例

      • 停掉149 的nginx 服務時:

        keepalived+nginx 模型示例

        測試鏈接:

        keepalived+nginx 模型示例

      • 149 nginx 服務重啟后:
        • keepalived+nginx 模型示例

        • keepalived+nginx 模型示例
      • 測試鏈接:

        keepalived+nginx 模型示例

      • 148測試也沒有變化:

    思考題

    nginx使用ip_hash或hash $request_uri算法時,故障切換后,同一個客戶端是否依然能關聯至此前綁定的upstream server;

    答:由于hash 時nginx 根據預定的算法進行的計算,所以只要IP和請求資源不變,被調度的地址就不會變

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

(0)
zhoulzzhoulz
上一篇 2017-05-13 21:30
下一篇 2017-05-13 21:40

相關推薦

  • 計算機的組成和Linux發行版本介紹

    計算機的組成及功能 計算機的五大組成,如下 各部分的作用; 控制單元和算數邏輯單元是CPU的兩個主要組成部分  控制單元主要協調各組件與各單元間的工作  算數邏輯單元主要負責程序運算與邏輯判斷 內存,DRANM(Dynamic Random Access Memory)動態隨機訪問內存;CPU讀取的數據都是從內存讀取來的。 輸入單元,下指…

    2017-07-02
  • Liunx課前準備

    ? ? ? ? 經過與家人的溝通終于來到了北京,開始了期待已久的Linux學習之路。 ? ?今天是講課前第一天,和上學時代一樣,各位同學做了自我介紹,仿佛又置身于10年前的課堂,同學們有序的介紹著自己,今天我們坐到了一起就為了同一個夢想。之前還有很大的顧慮:學不會怎么辦?出來找不到工作怎么辦?……但聽了大家的介紹后發現很多同學與我一樣,所有的顧慮瞬間消失,希…

    2018-03-26
  • LAMP編譯安裝

    所謂的LAMP是指構建在Linux之上經典的一種web架構方式,其中L指的是Linux,A指的是Apache的httpd,M指的是Mysql或MariaDB,P指的是PHP,這種組合方式的基本工作模式是有httpd負責接收和相應用戶的請求,然后將需要處理的php頁面交由后端的php應用程序處理,而php應用程序處理php頁面時的數據存儲在Mysql數據庫中,…

    Linux干貨 2016-12-19
  • 第四周-grep正則表達式簡單應用

    復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 && chmod 700 -R /home/tuser1 編輯/etc/g…

    Linux干貨 2016-08-02
  • 2.Linux文件管理類命令

    Linux文件管理類命令 cp命令:copy 源文件;目標文件; 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY | cp [OPTION]… -t DIRECTORY SOURCE… 單源復制:cp [OPTION]… [-T]&…

    Linux干貨 2017-07-09
  • CetnOS6啟動流程以及LVM下的fstab及boot恢復實驗

    centos6啟動流程 主動讀取BIOS,通過CMOS加載硬件信息 ,并進行POST,指定第一個可啟動的設備 ROM:BIOS,Basic Input and Output System,保存著計算機系統最重要的基本輸入輸出程序,系統信息設置,開機加電自檢程序RAM:保存各項參數的設定 讀取第一個可啟動設備MBR的引導加載程序(grub)的啟動信息 MBR:…

    Linux干貨 2017-05-13
欧美性久久久久