keepalived 安装配置

官网下载
当前的最新版本是:keepalived-2.0.18.tar.gz

Master 192.168.1.2
$ yum -y install openssl-devel libnl libnl-devel libnfnetlink-devel
$ tar -zxvf keepalived-2.0.18.tar.gz
$ cd keepalived-2.0.18
$ ./configure
$ make -j4
$ make install
$ systemctl enable keepalived

写一个检查nginx master进程是否存活的脚本

$ mkdir /etc/keepalived
$ vim /etc/keepalived/nginx_monitor.sh
#!/bin/bash
# 获取nginx master进程pid
pid=$(ps aux | grep -v grep | grep "nginx: master process" | awk '{print $2}')
# 判断进程pid是否为空,为空就认nginx服务有问题
if [ -z $pid ];then
	echo "############# nginx down " >> /var/log/messages
	exit 1
fi
exit 0

$ chmod 755 /etc/keepalived/nginx_monitor.sh

配置keepalived

$ vim /etc/keepalived/keepalived.conf
vrrp_script monitor {
	script "/etc/keepalived/nginx_monitor.sh"
	interval 1
}
vrrp_instance VI_1 {
	state MASTER
	interface ens33

	virtual_router_id 61
	priority 90
	advert_int 1

	track_script {
		monitor
	}
	virtual_ipaddress {
		192.168.1.10
	}
}

启动keepalived服务

$ systemctl start keepalived

附上nginx的配置

# cat /usr/local/nginx/conf/nginx.conf
worker_processes  auto;
events {
	use epoll;
	worker_connections 65535;
}
http {
	server {
		listen 80;
		location / {
			default_type text/html;
			return 200 "Hello,Nginx! Server [email protected]\n";
		}
    }
}

至此keepalived的Master节点192.168.0.2就配置好了,这份配置指定的vip是192.168.1.10
现在我们可以把我们的虚拟机克隆一份出来,作为backup节点192.168.0.3

backup 192.168.1.3

修改backup节点相应的配置文件

# cat /usr/local/nginx/conf/nginx.conf
worker_processes  auto;
events {
	use epoll;
	worker_connections 65535;
}
http {
	server {
		listen 80;
		location / {
			default_type text/html;
			return 200 "Hello,Nginx! Server [email protected]\n";
		}
    }
}

$ vim /etc/keepalived/keepalived.conf
vrrp_script monitor {
	script "/etc/keepalived/nginx_monitor.sh"
	interval 1
}
vrrp_instance VI_1 {
	state BACKUP
	interface ens33

	virtual_router_id 61
	priority 89
	advert_int 1

	track_script {
		monitor
	}
	virtual_ipaddress {
		192.168.1.10
	}
}
小结

keepalived可以实现nginx多节点共享一个虚拟IP(VIP)
使用nginx可以高可用,如本例中,master节点上的nginx宕机后,backup上位
当master节点的nginx故障修复后,依然是master,备胎(backup)依赖是备,备胎只是用来临时顶一顶。

Master与Backup中配置文件/etc/keepalived/keepalived.conf的异同

不同
  1. state MASTER、state BACKUP
  2. priority 90、priority 89
必须相同:
  1. virtual_router_id 61
  2. virtual_ipaddress { 192.168.1.10 }

搭建过程中可以通过查询系统日志来调试

$ tail -f /var/log/messages
发布了32 篇原创文章 · 获赞 0 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/h13140995776/article/details/101946992