keepalived实现nginx的高可用(双主模型)

实验环境:

RS1:rip(172.16.125.7),安装httpd软件包;

RS2:rip(172.16.125.8),安装httpd软件包;

director1(7-1.lcs.com):vip(172.16.125.100),dip(172.16.125.5),安装nginx、keepalived软件包。

director2(7-2.lcs.com):vip(172.16.125.110),dip(172.16.125.6),安装nginx、keepalived软件包。

首先关闭所有节点上iptables和selinux,同时进行时间同步。

使用双主模型实现nginx的高可用:

(1)在两台keepalived高可用主机上安装keepalived和nginx软件包,并提供配置文件。

a.首先使用时间同步,保证节点上的时间是同步的。

b.首先使用nginx反向代理实现后台RS上的web服务的负载均衡,在nginx的主配置文件(/etc/nginx/nginx.conf)中,进行修改。

在http段中添加upstream,将后端两台RS加入到该upstream中。

upstream myblancer {
        server 172.16.125.7:80;
        server 172.16.125.8:80;
    }

在server段中location /{}中加入代理,实现负载均衡调度。

location / {
                proxy_pass http://myblancer;
        }

c.进行检测,是否实现了后端RS的轮询调度。

(2)上述说明已经通过nginx的反向代理实现了http服务的负载均衡。在此处就可以开始配置keepalived的主配置文件,实现对nginx的高可用。详细配置文件如下:

keepalived的配置文件1:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx { 
    script "killall -0 nginx &> /dev/null"
    interval 1
    weight -20
}
 
vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 100
    }
    virtual_ipaddress {
	172.16.125.100/16 dev eno16777736 label eno16777736:0
    }
    track_script {
        chk_nginx  
   }
}
 
vrrp_instance VI_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 110
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 110
    }
    virtual_ipaddress {
	172.16.125.110/16 dev eno16777736 label eno16777736:1
    }
    track_script {
        chk_nginx
   }
}

keepalived配置文件2:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "killall -0 nginx &> /dev/null"
    interval 1
    weight -20
} 
vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 100
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 100
    }
    virtual_ipaddress {
	172.16.125.100/16 dev eno16777736 label eno16777736:0
    }
    track_script {
        chk_nginx
   }
}
 
vrrp_instance VI_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 110
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 110
    }
    virtual_ipaddress {
	172.16.125.110/16 dev eno16777736 label eno16777736:1
    }
   track_script {
        chk_nginx
   }
}

使用如下这个脚本检测nginx服务的状态,如果nginx服务发生了问题,那么在该服务器上的vip会自动流动到另一台高可用服务器上。使用下边这个脚本要保证高可用服务器上有killall命令,该命令是由psmisc软件包提供

vrrp_script chk_nginx {
    script "killall -0 nginx &> /dev/null"
    interval 1
    weight -20
}

通过这一步的keepalived的配置,keepalived服务已经配置完成,那么在这两台director上启动keepalived和nginx服务。

a.查看两台director上vip是否已经添加成功。

b.分别访问vip(172.16.125.100)和vip(172.16.125.110)。

c.在director1上关闭nginx服务,检测到vip已经消失,转移到director2上。

时间: 2025-01-02 00:21:31

keepalived实现nginx的高可用(双主模型)的相关文章

keepAlived+nginx实现高可用双主模型LVS

实验目的: 利用keepalived实现高可用反向代理的nginx.以及双主模型的ipvs 实验环境: node1:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node2:在nginx做代理时做反向代理节点,在keepalived实现LVS时做Director.VIP1:172.16.18.22 VIP2:172.16.18.23 node3:在nginx做代理时做web服务器.

基于heartbeat v1配置mysql和httpd的高可用双主模型

一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n`表示的主机名: ⑶ping node(仅偶数节点才需要) ⑷ssh密钥认证进行无障碍通信: 二.heartbeat v1的配置 程序主配置文件:ha.cf 认证密钥:authkeys, 其权限必须为组和其它无权访问: 资源配置文件:haresources /usr/share/doc/heartbe

Nginx+keepalived(高可用双主模式)

Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.168.237.128             VIP1:192.168.237.10 server2:192.168.237.129             VIP2:192.168.237.20 vim /etc/keepalived/keepalived.conf //编辑配置文件,增加一段新的v

keepalived实现nginx的高可用 + nginx负载均衡

前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力.通过负载均衡调度服务器,将来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈. 摘自<大型网站技术架构_核心原理与案例分析>

mysql高可用双主+keepalived

Mysql双主复制 实验拓扑:sql1  192.168.10.1   server id 1 vip 192.168.10.100 Sql2  192.168.10.2   server id 2 vip 192.168.10.100 客户端 192.168.10.3 Sql1配置双主 主库配置:vim /etc/my.cnf Log-bin=mysql-bin    //打开二进制日志 Server-id=1 Service mysqld start   //重启mysql进程 登录到mys

[Mysql高可用]——双主互备+keepalived

实验架构图    实验环境 主机名 操作系统 Mysql版本 keepalived版本 主机IP VIP lyj1(Master/Slave) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.201 10.0.100.220 lyj2(Slave/Master) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.202 构建双主互备 1. 分别修改DB1和DB

【转载】MySQL和Keepalived高可用双主复制

服务器主机IP和虚拟浮动IP配置 RealServer A 192.168.75.133 RealServer B 192.168.75.134 VIP A 192.168.75.110 VIP B 192.168.75.111 安装KeepAlived软件包 [[email protected] ~]# yum install keepalived =========================================================================

keepalived实现nginx的高可用

前言: 优化Nginx_proxy代理可能出现单点故障的情况,通过keepalived得方式来完成nginx_proxy服务器之间的高可用,因为keepalived的工作机制是通过心跳线来检测服务器之间是否出现故障,但是并不能检测nginx_proxy代理服务是否正常工作,所以需要采用编写脚本判断的方式来检测nginx_proxy代理服务器,当Nginx_proxy 代理服务器出现故障时.立马切换到vip 名词解释:VIP:用户通过访问VIP虚拟IP地址,从而访问对应的主节点选举:两台业务系统,

nginx实现请求的负载均衡 + keepalived实现nginx的高可用

前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力.通过负载均衡调度服务器,将来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈. 摘自<大型网站技术架构_核心原理与案例分析>