# /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
}
}
}