什么是keepalive
就是智能切换服务器,使服务不中断。当一台服务器发生故障,自动切换到备用的服务器。
实验模拟
- 新建一台负载均衡服务器,下载nginx。(和原机一模一样)
- 将原机的nginx中的.conf文件拷贝到新机
- 原机的ssl密钥拷贝
- 原机的proxy_params
- nginx -t 检查语法
- 在每台负载均衡服务器中下载keepalived
配置keepalived
vim /etc/keepalived/keepalived.conf
抢占式
主机
global_defs {
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
# (MASTER=主机,抢占式,如不需要抢占,同样设为BACKUP即可)
interface eth0
virtual_router_id 50
priority 150 #(权重,数字越大,优先级越高)
advert_int 3
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #(虚拟ip地址)
10.0.0.100
}
}
备用机
global_defs {
router_id lb02
}
vrrp_instance VI_1 {
state BACKUP # (备用机)
interface eth0
virtual_router_id 50
priority 100
advert_int 3
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.100
}
}
非抢占式
建议将 state 编辑为BACKUP
权重要分清
在vrrp_instance中添加nopreemp参数
#Master
vrrp_instance VI_1 {
state BACKUP
priority 150
nopreempt
…
}
#Backup
vrrp_instance VI_1 {
state BACKUP
priority 100
nopreempt
…
}
总结
keepalived 是运行在负载均衡上的一个高可用技术(地址漂移),和nginx没有关系。 只需要在每台负载均衡上配置好 keepalived 即可。
但是
keeplived只有在程序终止的情况下,才会飘逸,==并不会检测nginx的状态,==所以如果nginx出现问题,但keepalived存活,依旧无法飘逸,导致用户请求异常。所以需要将keepalived和nginx做一个捆绑操作。
keepalived+nginx实现高可用
需要写一个脚本