生產環境中,可以一個域名綁定多個ip輪詢訪問,比keepalived好用多了,后端的話有eureka之類的,所以在生產環境中根本用不到。
因此,這個就是自己玩的,但是keepalived解決問題的思路我很欣賞。
keepalived只支持兩台機器主備。
vip就是keepalived的虛擬ip,抽象的看,可以理解是虛擬網關
主備之間互相進行心跳檢測,默認設置主機掛vip,主機死了,備機可以檢測到,備機就掛vip。
同時,在機器上讓keepalived對nginx進程進行心跳檢測,死了就拉起來,拉不起來就把自己干死。vip就自動掛到備機上了。高可用嘛,死了接着用。
下面用docker玩一下
docker pull osixia/keepalived
docker run -d --rm -v /keepalived/conf/keepalived.conf:/container/service/keepalived/assets/keepalived.conf --name keepalived osixia/keepalived
vi /container/service/keepalived/assets/keepalived.conf
global_defs {
default_interface eth0
}
vrrp_script chk_http_port {
script "xxx.sh" # 執行腳本,在這里檢測nginx死沒死,死了拉起來,拉不起來就干死自己
interval 2 # 心跳
weight 2
}
vrrp_instance VI_1 {
state MASTER # 主 MASTER 備 BACKUP
interface eth0
virtual_router_id 51 # 主備機一致
priority 150 # 值大的掛vip
advert_int 1
virtual_ipaddress {
192.168.52.200
}
authentication {
auth_type PASS
auth_pass d0cker
}
notify "/container/service/keepalived/assets/notify.sh"
}
在設置一個備機就ojbk了