`
247687009
  • 浏览: 173207 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx+keepalived实现双机热切的高可用

阅读更多

Nginx+keepalived热切换高可用

一 keepalived简介

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

为了方便测试清关闭防火墙 service iptables stop 

二 安装

1,本次采用的是centos5.10 两台机器 (master_slave)架构master 192.168.235.101,

slave 192.168.235.102

2,准备编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel

3,下载软件源代码包

Nginx1.7.0 最新版

wget http://nginx.org/download/nginx-1.7.0.tar.gz

keepalived 1.2.12最新版

wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz

4,编译安装源代码

a. Nginx的安装(两台机器进行相同的安装即可)

解压nginx

tar xf nginx-1.7.0

cd nginx1.7.0

./configure

make && make install

如果没有报错证明安装成功

测试

/usr/local/nginx/sbin/nginx t

[root@keepMaster opt]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

表示成功

b. keepalived安装

tar xf keepalived-1.2.12.tar.gz

cd keepalived-1.2.12

./configure

make && make install

cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

chmod +x /etc/init.d/keepalived

chkconfig add keepalived

chkconfig keepalived on

mkdir /etc/keepalived

ln s /usr/local/sbin/keepalived /usr/sbin

三 配置

Keepalived的配置

amaster机器(192.168.235.101中的配置)

vi /etc/keepalived/ keepalived.config //这个文件默认是不存在的

使用vi 加入以下的配置

global_defs {

   notification_email {

     admin@centos.bz

   }

   notification_email_from keepalived@domain.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_script chk_http_port {

                script "/opt/nginx_pid.sh" ############该脚本我们在后面书写

                interval 2

                weight 2

}

vrrp_instance VI_1 {

    state MASTER        ############ 辅机为 BACKUP

    interface eth0

    virtual_router_id 51

    mcast_src_ip 192.168.235.101

    priority 102                  ########### 权值要比 back 

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

track_script { 

        chk_http_port ### 执行监控的服务 

        }

    virtual_ipaddress {

      192.168.235.100 ############ 此处的虚拟IP 地址即 我们web                                                      ####要访问的IP地址  必须在同一网段

    }

}

 

 

b 配置slave(192.168.235.102)

vi /etc/keepalived/ keepalived.config //这个文件默认是不存在的

使用vi 加入以下的配置

 

global_defs {

   notification_email {

     admin@centos.bz

   }

   notification_email_from keepalived@domain.com

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_script chk_http_port {

                script "/opt/nginx_pid.sh" ############该脚本我们在后####面书写

                interval 2

                weight 2

}

vrrp_instance VI_1 {

    state BACKUP  

    interface eth0

    virtual_router_id 51

    mcast_src_ip 192.168.235.102

    priority 102                  ########### 权值要比 back 

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

track_script { 

        chk_http_port ### 执行监控的服务 

        }

    virtual_ipaddress {

      192.168.235.100 ############ 此处的虚拟IP 地址即 我们web                                                      ####要访问的IP地址  必须在同一网段

    }

}

 

分别在master slave上建立nginx的监控脚本文件

vi /opt/nginx_pid.sh

 

输入以下配置

#!/bin/bash

A=`ps C nginx no-header |wc -l`

if [$A eq 0];then

/usr/local/nginx/sbin/nginx

sleep 3

if[`ps C nginx no-header |wc -l` -eq 0];then

killall keepalived

fi

fi

四 测试

<!--[if !supportLists]-->1. <!--[endif]-->分别在msterslave上启动nginx  /usr/local/nginx/sbin/nginx

<!--[if !supportLists]-->2. <!--[endif]-->先启动master(101)上的 keepalived  service keepalived start 再启动slave(102)

<!--[if !supportLists]-->3. <!--[endif]-->master上敲入 ip a

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

   link/ether 00:0c:29:c2:74:15 brd ff:ff:ff:ff:ff:ff

    inet 192.168.235.101/24 brd 192.168.235.255 scope global eth0

    inet 192.168.235.110/32 scope global eth0 //虚拟IP成功了 使用该地址访问 

   inet6 fe80::20c:29ff:fec2:7415/64 scope link

       valid_lft forever preferred_lft forever

此时在slave输入ip a 是看不到虚拟ip

<!--[if !supportLists]-->4. <!--[endif]-->master上关闭nginx  /usr/local/nginx/sbin/nginx s stop 输入ip a 

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

   link/ether 00:0c:29:c2:74:15 brd ff:ff:ff:ff:ff:ff

    inet 192.168.235.101/24 brd 192.168.235.255 scope global eth0 

   inet6 fe80::20c:29ff:fec2:7415/64 scope link

       valid_lft forever preferred_lft forever

虚拟IP地址没有了

此时在slave下输入ip a 

看到inet 192.168.235.110/32 scope global eth0 说明成功了

下面是我测试机器

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:0c:29:e3:a2:2b brd ff:ff:ff:ff:ff:ff

    inet 192.168.235.102/24 brd 192.168.235.255 scope global eth0

    inet 192.168.235.110/32 scope global eth0 //看到这个 表示切换成功 秒级别

    inet6 fe80::20c:29ff:fee3:a22b/64 scope link

       valid_lft forever preferred_lft forever

<!--[if !supportLists]-->5. <!--[endif]-->重新启动master 上的nginxkeepalived会自动切换到master 

<!--[if !supportLists]-->6. <!--[endif]-->经测试在master意外断电的情况下任然不影响切换,并在master成功修复,重新启动成功之后,slave会自动切换到master

 

分享到:
评论

相关推荐

    nginx+keepalived实现双机热备高可用

    nginx+keepalived实现双机热备高可用 本文详细介绍了使用nginx和keepalived实现双机热备高可用的技术解决方案。该解决方案旨在解决nginx集群部署时的单点故障问题。通过keepalived软件,实现对nginx服务器的高可用...

    Nginx+keepalived双机热备(主从模式)

    Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 Nginx是一款流行的开源Web服务器软件,具有...

    Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署记录(个人珍藏版)

    本片详细记录了Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署过程,讲解十分到位,可作为线上实操手册。特在此分享,希望能帮助到有用到的朋友。

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    二、部署调度器—搭建Nginx+Keepalived(双机热备) 在调度器服务器上,需要安装Nginx和Keepalived软件包。首先,需要安装编译工具和插件,然后添加nginx用户和组,解压Nginx安装包,编译和安装Nginx。接着,需要...

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...

    源码安装nginx+keepalived实现HA(高可用)

    ### 源码安装Nginx与Keepalived实现高可用集群 #### 一、概述 在本篇文章中,我们将详细介绍如何通过源码安装的方式部署Nginx与Keepalived来构建一个高可用(High Availability,简称HA)的Web服务集群。这种方式...

    Nginx+Keepalived实现nginx高可用详细步骤.docx

    Nginx+Keepalived实现nginx高可用详细步骤 本文档将详细介绍使用Nginx+Keepalived实现nginx高可用的详细步骤。高可用性是指系统或服务在出现故障时能够快速恢复或切换到备份系统的能力,以确保服务的连续性和可靠性...

    Nginx+Keepalived 主备集群拓扑图

    Nginx+Keepalived 组网主备集群网络拓扑图,欢迎下载

    Nginx+KeepAlived+Tomcat负载架构

    ### Nginx+KeepAlived+Tomcat负载架构详解 #### 一、概述 随着互联网应用的日益增多,单一服务器已经难以满足高并发、高可用性的需求。因此,越来越多的企业开始采用集群技术来提高系统的稳定性和扩展性。本文将...

    nginx+keepalived高可用学习资料

    在`nginx+keepalived使用文档.doc`中,应包含了详细的步骤和示例,指导用户如何配置Nginx和Keepalived,如何测试和验证高可用性的实现,以及在实际环境中可能遇到的问题和解决方法。 总的来说,通过深入学习和实践...

    nginx+keepalived文档使用

    nginx+keepalived使用文档.nginx+keepalived使用文档.

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    CentOS系统安装配置Nginx+keepalived实现负载均衡 本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构...

    nginx+keepalived安装部署手册

    Nginx+keepalived双机主备,keepalived广播模式。

    Nginx+Keepalived实现高可用

    Nginx+Keepalived实现高可用

    Nginx+keepalived+tomcat集群搭建过程.doc

    【Nginx+Keepalived+Tomcat集群搭建】是一个实现服务器高可用和负载均衡的常见方案,旨在解决单点故障问题,防止服务因一台服务器宕机而导致整个系统的崩溃,即所谓的雪崩效应。 首先,我们需要四台服务器,两台...

    redhat6.4+nginx+keepalived__实现双机热备和负载均衡

    redhat6.4+nginx+keepalived__实现双机热备和负载均衡

    Haproxy+Keepalived+Nginx+Lamp+Nfs实现高可用集群1

    【标题】:“Haproxy+Keepalived+Nginx+Lamp+Nfs实现高可用集群1” 【描述】:“在互联网服务中,高可用性是关键。本案例将通过Haproxy、Keepalived、Nginx、LAMP(Linux、Apache、MySQL、PHP)和NFS(网络文件系统...

    Nginx+keepalived核心配置文件

    Nginx和Keepalived是两个在IT行业中广泛使用的开源软件,主要应用于高可用性和负载均衡场景。Nginx是一款高性能的HTTP和反向代理服务器,而Keepalived则是一个网络服务守护进程,用于实现主备切换和负载均衡。 **...

Global site tag (gtag.js) - Google Analytics