阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx之Keepalived高可用

143次阅读
没有评论

共计 1899 个字符,预计需要花费 5 分钟才能阅读完成。

规划

主机名 ip 安装的软件
master 192.168.2.110 Nginx、Keepalived
slave1 192.168.2.111 Nginx、Keepalived
虚拟 IP 192.168.2.112  

安装 keepalived

yum install -y keepalived

Nginx 之 Keepalived 高可用

修改配置文件(192.168.2.110)

备份配置文件

cd /etc/keepalived
cp keepalived.conf keepalived.conf.bak

修改配置文件

vi keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id nginx_server_1
}

vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -5
}

vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {192.168.2.112
    }
    track_script {chk_nginx}
}

要修改的参数:

router_id、interface、priority、track_script

其中 interface 的设置可以使用 ip addr 查看

Nginx 之 Keepalived 高可用

创建脚本文件

vi check_nginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if ["${counter}" = "0" ]; then
   exit 1
else
   exit 0
fi

给脚本文件添加执行权限

chmod +x check_nginx.sh

拷贝配置文件(192.168.2.111)

拷贝配置文件

先在 192.168.2.111 安装 Keepalived,

scp keepalived.conf root@192.168.2.111:/etc/keepalived/
scp check_nginx.sh root@192.168.2.111:/etc/keepalived/

修改配置文件

vi keepalived.conf
router_id nginx_server_1  --> router_id nginx_server_2
state MASTER              --> state BACKUP
priority 101              --> priority 100

测试

防火墙设置

一、直接关闭防火墙:

 关闭防火墙
systemctl stop firewalld.service
关闭开机启动
systemctl disable firewalld.service

二、开发 IP

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eno16777736 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload

启动 Nginx

在两台机器上启动,并测试

 /opt/soft/nginx-1.10.0/sbin/nginx 

分别启动 Keepalived

systemctl restart keepalived.service

通过 ip addr 查看

主机 192.168.2.110

Nginx 之 Keepalived 高可用

主机 192.168.2.111

Nginx 之 Keepalived 高可用

这时停止 110 主机的 Nginx 再次查看:

主机 192.168.2.110

Nginx 之 Keepalived 高可用

主机 192.168.2.111

Nginx 之 Keepalived 高可用

可以看的 虚拟 IP 自动切换到主机 111 上了。

这样就算挂掉一台主机,我们的另一台主机都会切换过来实现 Nginx 的高可用,

在重新启用 110 的 Nginx 后会自动切换过来,在 MASTER 节点的 vrrp_instance 中 配置 nopreempt,当它异常恢复后,即使它 prio 更高也不会抢占,这样可以避免正常情况下做无谓的切换。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143708.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1899字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中