LVS+Keepalived配置檔案詳解

MrUse發表於2015-02-14
# /etc/keepalived/keepalived.conf
# 完整的 keepalived 配置檔案由3部分組成:全域性定義部分,vrrp例項定義部分,虛擬伺服器定義部分

vrrp_instance VI_1 {
! Configuration File for keepalived
# 全域性定義部分
global_defs {
   notification_email {
    test1@163.com    # 設定報警郵件地址,可設定多個
    test2@163.com    # 每行1個; 開啟郵件報警,需要開啟本機 sendmail 服務
   }
   notification_email_from test0@163.com     # 設定 郵件的傳送地址
   smtp_server smtp.163.com                     # 設定 smtp server 地址
   smtp_connect_timeout 30                    # 設定 連線 smtp server的超時時間
   router_id LVS_DEVEL-1                    # 設定 keepalived 伺服器的一個標識。發郵件時顯示在郵件主題中的資訊
}
# vrrp 例項部分定義
vrrp_instance VI_1 {
    state BACKUP                            # 指定 keepalived 的角色,可選值:MASTER|BACKUP 分別表示(主|備)
    interface eth0                            # 指定 HA 檢測網路的介面
    virtual_router_id 60                    # 虛擬路由表示,是一個數字,同一個vrrp 例項使用唯一的標識, 預設值是51
                                            # MASTER和BACKUP 的 同一個 vrrp_instance 下 這個標識必須保持一致
    priority 100                            # 定義優先順序,數字越大,優先順序越高。
                                            # 同一個 vrrp_instance 下,MASTER 優先順序必須大於 BACKUP
    advert_int 1                            # 設定 MASTER 與 BACKUP 負載均衡之間同步檢查的時間間隔,單位為秒
    authentication {                        # 設定驗證型別和密碼
        auth_type PASS                        # 設定驗證型別,主要有: PASS 和 AH 兩種
        auth_pass 1111                        # 設定驗證密碼,在一個 vrrp_instance 下, MASTER 和 BACKUP必須使用相同的密碼才能通訊
    }
    virtual_ipaddress {                        # 設定虛擬IP地址,可以設定多個虛擬IP地址,每行一個
        172.16.100.120
        172.16.100.130
    }
}
# 虛擬伺服器定義部分
virtual_server 192.168.200.100 443 {    # 設定虛擬伺服器需要指定虛擬IP地址和服務埠,IP和埠之間用空格隔開
    delay_loop 6                        # 設定執行情況檢查,
    lb_algo rr                            # 設定負載均衡排程演算法,這裡設定為rr, 即輪詢演算法
    lb_kind NAT                            # 設定LVS實現負載均衡的機制,有 NAT,TUN和DR三個模式可選
    nat_mask 255.255.255.0
    persistence_timeout 50                # 會話保持時間,單位是秒。這個選項對動態網頁比較有用,為叢集系統中的session共享提供了很好的解決方案
                                        # 使用者請求會一直髮布到某個服務節點,知道超過這個會話的保持時間。
                                        # 需要注意,這個會話保持時間是最大無響應超時時間,即,使用者在操作動態頁面是,指定描述內無任何操作
                                        # 則接下來的操作會被分發到其他節點,若一直操作則不受該設定限制
    protocol TCP                        # 指定轉發協議型別,有TCP和UDP

    real_server 192.168.201.100 443 {    # 配置服務節點需要指定 real_server 的真實IP地址和埠,IP與埠之間用空格隔開
        weight 1                        # 配置服務節點的權值,權值大小用數字表示,數字越大,權值越高
                                        # 設定權值的大小可以為不同效能的伺服器分配不同的負載,可以為效能搞的伺服器設定較高的權值,
                                        # 效能低的設定相對低的權值
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }                                

        SSL_GET {
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 10.10.10.2 1358 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    sorry_server 192.168.200.200 1358

    real_server 192.168.200.2 1358 {
        weight 1
        HTTP_GET {
            url {
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.3 1358 {
        weight 1
        HTTP_GET {
            url {
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            url {
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 10.10.10.3 1358 {
    delay_loop 3
    lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.200.4 1358 {
        weight 1
        HTTP_GET {
            url {
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.5 1358 {
        weight 1
        HTTP_GET {
            url {
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url {
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

相關文章