Nginx keepalived+nginx高可用集群

一、服务器准备

ip 服务器 软件
192.168.43.142 主机 1,主用 Nginx+keepalived
192.168.43.141 主机 2,备用 Nginx+keepalived
192.168.43.131 从机 1,应用服务 Tomcat
192.168.43.133 从机 2,应用服务 Tomcat

二、安装Nginx和keepalived

             ① 安装Nginx,参看博客《安装Nginx》

             ② Nginx的集群部署,参看博客《Nginx负载均衡》

             ③ 安装keepalived

                          1)、两台主机分别使用如下命令安装keepalived以及相关依赖

yum install -y openssl openssl-devel keepalived

                          2)、两台从机安装httpd服务

yum install -y httpd   #安装httpd
systemctl start httpd  #启动httpd

三、修改keepalived的配置文件

      先查看一下自己的网卡

ip addr show

 

cd /etc/keepalived  #打开keepalived的所在目录
mv keepalived.conf keepalived.conf.bak  #备份一份原来的配置文件
vi keepalived.conf  #编辑配置文件

           ① 主机 1 的配置文件

#主机1配置:
! Configuration File for keepalived

global_defs {
   notification_email {
    root@localhost
   }
   notification_email_from keepalived@localhost 
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node-00
   vrrp_mcast_group4 224.0.38.12
}

    vrrp_script check_ngx {           #脚本在引用前定义好
        script "killall -0 nginx "  #探测nginx服务是否正常
        interval    1
        weight  -5
    }
vrrp_instance VI_1 {
    state MASTER            # 表示是主用
    interface eno16777736    #网卡,通过ip addr show查看-------这是要你修改的
    virtual_router_id 38
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass x1er44q
    }
    virtual_ipaddress {
        #192.168.43.100/24 对外暴露的ip-------这是要你修改的
		192.168.43.100/24 dev eno16777736  #eno16777736为 ip addr show出来看到的
    }
    track_script {  #在路由实例中引用自定义脚本
        check_ngx
    }
    smtp_alert
}

           ② 主机 2 的配置文件

#主机2配置:
! Configuration File for keepalived

global_defs {
   notification_email {
    root@localhost
   }
   notification_email_from keepalived@localhost 
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id node-01
   vrrp_mcast_group4 224.0.38.12
}

    vrrp_script check_ngx {
        script "killall -0 nginx"
        interval    1
        weight  -5
    }
vrrp_instance VI_1 {
    state BACKUP          #表示是备用
    interface eno16777736 #-----这是要你修改的
    virtual_router_id 38
    priority 97
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass x1er44q
    }
    virtual_ipaddress {
		192.168.43.100/24 dev eno16777736  #----这是要你修改的
    }
    track_script {
        check_ngx
    }
    smtp_alert
}

四、启动

           ① 关闭四台机器的防火墙

systemctl stop firewalld

           ② 启动两台从机的Tomcat服务

           ③ 启动两台主机的Nginx服务

           ④ 启动两台主机的keepalived服务

systemctl start keepalived

五、测试

           ① 正常情况

                      主备正常,访问暴露给外界的ip

                      负载均衡策略正常工作。

           ② 异常情况

                      主用的服务器挂掉

                      访问暴露给外界的ip

                      负载均衡策略正常工作。

                      查看备用服务器的ip状态

ip addr show

                      可以看到,备用上面将暴露的ip挂载上了。

              主用服务器重启后,先关闭防火墙

systemctl stop firewalld  #关闭防火墙

              再开启Nginx和keepalived服务

cd /usr/local/nginx/sbin  
./nginx  #开启Nginx服务
systemctl start keepalived  #开启keepalived服务

              查看主备的ip

         访问暴露的ip地址,负载均衡策略正常。

至此,Nginx+keepalived的高可用负载均衡集群配置策略完成!

猜你喜欢

转载自blog.csdn.net/a15123837995/article/details/84751010