Nginx+Keepalived双机热备(主主模式)

由于网站的访问需求不断加大,负载越来越高。现需要在Web前端放置Nginx负载均衡,同时结合Keepalived对前端Nginx实现HA高可用。

1、nginx进程基于Master+Slave(worker模式)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worker)进程所有的超时任务都会被Master中止,属于非阻塞式任务模型。
2、Keepalived是Linux下面实现VRRP备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接。二者结合,可以构架出比较稳定的软件LB方案。


 
双机高可用方法目前分为两种:
1)双机主从模式:即前端使用两台服务器,一台主服务器和一台热备服务器,正常情况下,主服务器绑定一个公网虚拟IP,提供负载均衡服务,热备服务器处于空闲状态;当主服务器发生故障时,热备服务器接管主服务器的公网虚拟IP,提供负载均衡服务;但是热备服务器在主机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠。
2)双机主主模式:这种模式的效果很强大,即前端使用两台负载均衡服务器,互为主备,且都处于活动状态(这样达到不浪费服务器),同时各自绑定一个公网虚拟IP,提供负载均衡服务;当其中一台发生故障时,另一台接管发生故障服务器的公网虚拟IP(这时由非故障机器一台负担所有的请求)。这种方案,经济实惠,非常适合于当前架构环境。
 
一、环境介绍:
操作系统:
[root@CentOS-4 ~]# cat /etc/RedHat-release
CentOS release 6.9 (Final)
服务器对应关系:
KA1:192.168.5.129 centos-1
KA2:192.168.5.128 centos-4
Vip1:192.168.5.200  129master/128backup
VIP2:192.168.5.210  128master/129backup
Web1:192.168.5.131 centos-2
Web2:192.168.5.132 centos-3
二、环境安装:
安装依赖:
(在KA1和KA2机器上执行以下步骤)
[root@centos-4 ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
[root@centos-4~]# cd /usr/local/src/
[root@centos-4 src]# wget
安装nginx
[root@centos-4 src]# tar -zvxfnginx-1.9.7.tar.gz
[root@centos-4 src]# cd nginx-1.9.7
[root@centos-4 nginx-1.9.7]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx--with-http_ssl_module --with-http_flv_module --with-http_stub_status_module--with-http_gzip_static_module --with-pcre

[root@centos-4 nginx-1.9.7]# make &&make install
[root@centos-1 ~]# yum install -ykeepalived
      (在web1服务器和web2服务器上安装nginx)
[root@centos-2~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
[root@centos-2~]# cd /usr/local/src/
[root@centos-2 src]# wget
安装nginx
[root@centos-2 src]# tar -zvxfnginx-1.9.7.tar.gz
[root@centos-2 src]# cd nginx-1.9.7
[root@centos-2 nginx-1.9.7]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx--with-http_ssl_module --with-http_flv_module --with-http_stub_status_module--with-http_gzip_static_module --with-pcre

[root@centos-2 nginx-1.9.7]# make &&make install
三、配置服务:
(所以服务器上配置)
[root@centos-1 ~]# cat/etc/sysconfig/selinux
SELINUX=disabled
[root@centos-1 ~]# getenforce
Disabled
[root@centos-1 ~]# service iptables stop
1、配置keepalived:
(KA1上操作)

[root@centos-1 ~]#cat /etc/keepalived/keepalived.conf
! Configuration Filefor keepalived 
   
global_defs { 
  notification_email { 
    acassen@firewall.loc 
    #failover@firewall.loc 
    #sysadmin@firewall.loc 
  } 
  router_id LVS_DEVEL 

 vrrp_scriptchk_http_port {       
    script "/opt/check_nginx.sh" 
    interval 2                     
    weight -5                     
    fall 2                 
    rise 1                 
}
   
vrrp_instance VI_1{ 
    state MASTER
    interface eth0 
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    virtual_ipaddress { 
        192.168.5.200 
    } 

 
vrrp_instance VI_2{ 
    state BACKUP
    interface eth0
    virtual_router_id 50
    priority 90
    advert_int 1 
    authentication { 
        auth_type PASS
        auth_pass 1111 
    }
    virtual_ipaddress {
        192.168.5.210
}
track_script {                     
  chk_http_port                 
}
 
}

(KA2上操作)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3d4bdc06ad502d072290b0e698c19d2b.html