Keepalived+Nginx高可用

目录

资源列表

基础环境

关闭防火墙

关闭内核安全机制

修改主机名

添加hosts解析

一、安装Nginx

安装Nginx

启动Nginx

二、安装Keepalived

安装keepalived

修改配置文件

主节点配置文件

备节点配置文件

创建nginx服务检查脚本

启动keepalived


        本文记录了Nginx+Keepalived实现高可用的全部过程,希望能够帮到大家。

资源列表

操作系统配置主机名IP
CentOS7.3.16112C4Gnginx01192.168.207.131
CentOS7.3.16112C4Gnginx02192.168.207.165
VIP192.168.207.200

基础环境

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭内核安全机制

sed -i "s/.*SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
reboot

修改主机名

hostnamectl set-hostname nginx01
hostnamectl set-hostname nginx02

添加hosts解析

cat >> /etc/hosts << EOF
192.168.207.131 nginx01
192.168.207.165 nginx02
EOF

一、安装Nginx

安装Nginx

sudo yum -y install yum-utils
​
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
​
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
​
sudo yum -y install nginx
​

启动Nginx

systemctl start nginx
systemctl enable nginx

二、安装Keepalived

安装keepalived

yum -y install keepalived

修改配置文件

主节点配置文件

# 备份配置文件
cp /etc/keepalived/keepalived.conf{,_bak}
​
# 主节点keepalived的配置文件,注意修改interface以及virtual_ipaddress

! 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 LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
​
vrrp_script check_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 1   # 1秒检查一次
    weight -2    # 如果脚本失败则priority -2
}
​
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx
    }
    virtual_ipaddress {
        192.168.207.200/24
    }
}

备节点配置文件

# 备份配置文件
cp /etc/keepalived/keepalived.conf{,_bak}
​
# 备节点keepalived的配置文件,注意修改interface以及virtual_ipaddress

! 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 LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
​
vrrp_script check_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 1
    weight -2
}
​
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx
    }
    virtual_ipaddress {
        192.168.207.200/24
    }
}

创建nginx服务检查脚本

cat > /etc/keepalived/nginx_check.sh << 'EOF'
#!/bin/bash

# 获取nginx进程的数量
num=$(ps -ef | grep nginx | grep process | grep -v grep | wc -l)

if [ "$num" -eq 0 ]
then
    systemctl stop keepalived
fi
EOF

chmod +x /etc/keepalived/nginx_check.sh

启动keepalived

systemctl start keepalived
systemctl enable keepalived

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keepalived是一个用于实现高可用性的软件,它可以在多个服务器之间共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。而Nginx是一个高性能的Web服务器,它可以作为反向代理服务器,将客户端请求转发到后端的多个Web服务器上,以实现负载均衡和高可用性。因此,将KeepalivedNginx结合使用可以实现高可用性的Web服务。 具体实现步骤如下: 1. 在多台服务器上安装Nginx,并将Nginx配置为反向代理服务器,将客户端请求转发到后端的多个Web服务器上。 2. 在多台服务器上安装Keepalived,并将Keepalived配置为共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。 3. 编写一个脚本文件nginx_check.sh,用于检查Nginx是否正常运行,如果Nginx停止运行,则关闭Keepalived,以确保虚拟IP地址可以在其他服务器上接管服务。 参考上述引用和引用,可以看出具体实现步骤如下: 1. 将Nginx配置为反向代理服务器,将客户端请求转发到后端的多个Web服务器上。 2. 在多台服务器上安装Keepalived,并将Keepalived配置为共享一个虚拟IP地址,以确保在某个服务器故障时,其他服务器可以接管服务并继续提供服务。 3. 编写一个脚本文件nginx_check.sh,用于检查Nginx是否正常运行,如果Nginx停止运行,则关闭Keepalived,以确保虚拟IP地址可以在其他服务器上接管服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值