LinuxLinuxNetwork

linux-高可用之keepalived实现nginx高可用

2021-04-21  本文已影响0人  愚公移山

Keepalived的作用是检测web服务器的状态,如果有一台web服务器、

Mysql服务器宕机,或工作出现故障,Keepalived将检测到后,会将有故

障的web服务器或者Mysql服务器从系统中剔除,当服务器工作正常后

Keepalived自动将web、Mysql服务器加入到服务器群中。这些工作全部

自动完成,不需要人工干涉,需要人工做的只是修复故障的WEB和Mysql

服务器。

生产环境使用Keepalived正常运行,共启动3个进程,一个是父进程,负责

监控其子进程,一个是VRRP子进程,另外一个是Checkers子进程。两个子

进程都被系统Watchlog看管,两个子进程各自负责自己的事,

Healthcheck子进程检查各自服务器的健康状况,如果Healthcheck进程检

查到Master上服务不可用了,就会通知本机上的VRRP子进程,让他删除通

告,并且去掉虚拟IP,转换为BACKUP状态。

虚拟IP:192.168.80.200

nginx服务器:192.168.80.128-129

# nginx服务器上安装keepalived工具:

yum install keepalived -y

# master端配置:

vim /etc/keepalived/keepalived.conf

router_id LVS_DEVEL:keepalived机器的标识,一般设为主机名

virtual_router_id 51:虚拟路由器id号,主从必须一致

priority 100:优先级(值越大,优先级越大)

advert_int 1:检测间隔时间(心跳频率)

# backup端配置:

# 启动keepalived:

systemctl start keepalived

# 测试:

启动之后就可以看到vip的生成并且成功128服务器的nginx服务

关闭128服务器的nginx和keepalived:

nginx -s stop && systemctl stop keepalived

129成功获得vip地址和成功访问到129服务器的nginx服务

测试成功   》》》》》》》

我们确实实现的vip能继续提供服务,但是nginx宕机时,我们需要手动关闭keepalived服务,期间用户访问会受到影响。下面我们就一起来是实现自动切换。只需要在原先的配置文件添加几行文档,很简单的。

# 配置keepalived的master端

vim /etc/keepalived/keepalived.conf

scripts:指定一个脚本,判断nginx是否宕机。

weight:宕机后优先级减20(100=>80).

track_script:用来追踪脚本

下面是检测nginx是否宕机的脚本:

killall -0 nginx 判断nginx是否处于启动状态(启动返回0,没启动返回1)

# 测试——成功

只模拟nginx宕机

上一篇下一篇

猜你喜欢

热点阅读