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

相關推薦

  • Linuxd的發展史

    Linux發展史 Linux誕生:   1991年的八月,一個芬蘭的名為Linus Torvalds的大學生為自己開始寫作一個類似minix,可運行在386上的操作系統尋找志同道合的合作伙伴。FREAX系統后改名Linux。  Linux是什么:   按照Linux開發者的說法,Linux是一個遵循POSIX(注一)標作系統,標…

    Linux干貨 2016-10-14
  • net25 第15周作業

    1、總結sed和awk的詳細用法; SED sed模式空間 默認不編輯源文件,僅對模式空間中的數據做處理:而后,處理結束后,將模式空間打印屏幕 sed [options]’address+command’ file… -n:靜默模式,不再默認顯示模式空間的內容 -i:直接修改原文件 -e script -e script 同時執行多個腳本 -f /pat…

    Linux干貨 2017-05-15
  • Linux高級文件系統管理之磁盤配額、RAID和LVM的使用

    磁盤配額Quota 磁盤配額(Quota)的作用:   在Linux系統中,由于是多用戶、多任務的環境,所以會有多用戶共同使用一個硬盤空間的情況發生,如果其中有少數幾個用戶大量占掉了硬盤空間的話,那肯定影響其他用戶的使用權限。因此管理員應該適當限制硬盤的空間給用戶,以妥善分配系統資源。 磁盤配額的一般用途    比較常使用的幾種…

    Linux干貨 2016-09-02
  • Linux 基礎命令

    時間命令:     date:         date [option].. [+format]:顯示      [root@localhost ~]# dateThu Feb 25 14…

    Linux干貨 2016-02-28
  • 系統管理之磁盤管理(一)

    磁盤結構 一.概論 1.操作系統的組成部分: 硬件: 根據馮諾依曼體系,計算機的組成:    運算,控制器:cpu    存儲器:主存(ram);       io設備:      &nbs…

    Linux干貨 2016-08-30
  • 計算機運維基礎知識 Linux版

    計算機系統由硬件系統和軟件系統組成 第一代計算機   電子管時代 第二代計算機   晶體管時代 第三代計算機   集成電路時代 第四代計算機   大規模集成電路時代 1964年,世界第一代計算機ENICA。用來計算彈道軌跡。 馮諾依曼  計算機之父 運算器,控制器,存儲器,輸入設備,輸出設備。 巨型計算機,大…

    Linux干貨 2016-08-04
欧美性久久久久