先解释一下网络分区:
比如俩台服务器分别放到俩个机柜,每个机柜都有一个交换机,俩个机柜之间需要通讯,如果俩个机柜之间断掉了,俩个机柜之间就访问不到了,那么这俩个机柜就会出现网络分区,局域网不受影响,但是外网受影响。如果交换ip,那么突然有一台恢复了,就冲突了。
有俩台nginx的服务器,一台是master,一台是备用的服务器,防止一台宕机了,另外一台就可以使用。我们虚拟出来一个IP地址,利用keeplive,俩台niginx服务器之间通过keeplive相互通讯。有一台宕机,直接启动另一台nginx的服务器,通过虚拟ip。通过虚拟ip,配置一个高可用的nginx的服务器。keepalived可以做到ip漂移。
一个服务器可以有很多网卡,一个网卡可以有很多ip。
安装keeplive:
下载地址:
使用./configure编译安装
出错:
configure:error:
OpenSSl is not properly installed on your system
安装依赖:
yum install openssl-devel
yum 安装:
yum install keepalived
配置使用yum安装后配置文件在
/etc/keepalived/keepalived.conf
配置keepalived.conf(第一台机器)
!Configuration File for keepalived
global_defs{
router_id lb111
}
#内网通讯协议
vrrp_instance atguigu{
state MASTER
#网卡名字
interface eno16777736
virtual_router_id 51
#优先级,谁的优先级越高,谁就是master
priority 100
advert_int 1
#认证,同一组保持一致
authentiication{
auth_type PASS
auth_pass 1111}
#虚拟的ip地址
virtual_ipaddress{
192.168.208.221
}}
第二台机器:keepalived.conf
!Configuration File for keepalived
global_defs{
router_id lb110
}
#内网通讯协议
vrrp_instance atguigu{
state BACKUP
#网卡名字
interface eno16777736
virtual_router_id 51
#优先级,谁的优先级越高,谁就是master
priority 50
advert_int 1
#认证,同一组保持一致
authentiication{
auth_type PASS
auth_pass 1111}
#虚拟的ip地址
virtual_ipaddress{
192.168.208.221
}}
常用配置:我们会写一个脚本,每间隔一段时间去请求一下nginx,如果检测到返回不是200,就会kill掉keepalived,直接启用备用nginx服务器。