`
jaesonchen
  • 浏览: 312904 次
  • 来自: ...
社区版块
存档分类
最新评论

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

 
阅读更多

这篇文章简单介绍利用keepalived软件,实现对nginx服务器的高可用,即实现故障自动切换。假设你已经安装好nginx,下面介绍keepalived的安装和使用。

keepalived安装

  1. yum install openssl-devel
  2. cd /tmp
  3. wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
  4. tar xzf keepalived-1.2.2.tar.gz
  5. cd keepalived-1.2.2
  6. ./configure
  7. make && make install
  8. cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
  9. cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
  10. chmod +x /etc/init.d/keepalived
  11. chkconfig --add keepalived
  12. chkconfig keepalived on
  13. mkdir /etc/keepalived
  14. ln -s /usr/local/sbin/keepalived /usr/sbin/

keepalived的配置

更详细的keepalived配置文件说明可以执行man keepalived.conf查看。
我们假设主服务器IP:192.168.1.103,从服务器ip:192.168.1.101 虚拟ip:192.168.1.110
下面对主服务器的keepalived进行配置:

  1. vi /etc/keepalived/keepalived.conf
  1. global_defs {
  2.    notification_email {
  3.      admin@centos.bz
  4.    }
  5.    notification_email_from keepalived@domain.com
  6.    smtp_server 127.0.0.1
  7.    smtp_connect_timeout 30
  8.    router_id LVS_DEVEL
  9. }
  10. vrrp_script chk_http_port {
  11.                 script "/opt/nginx_pid.sh"
  12.                 interval 2
  13.                 weight 2
  14. }
  15. vrrp_instance VI_1 {
  16.     state MASTER        ############ 辅机为 BACKUP
  17.     interface eth0
  18.     virtual_router_id 51
  19.     mcast_src_ip 192.168.1.103
  20.     priority 102                  ########### 权值要比 back 高
  21.     advert_int 1
  22.     authentication {
  23.         auth_type PASS
  24.         auth_pass 1111
  25.     }
  26. track_script { 
  27.         chk_http_port ### 执行监控的服务 
  28.         }
  29.     virtual_ipaddress {
  30.        192.168.1.110
  31.     }
  32. }

从服务器:

  1. global_defs {
  2.    notification_email {
  3.      admin@centos.bz
  4.    }
  5.    notification_email_from keepalived@domain.com
  6.    smtp_server 127.0.0.1
  7.    smtp_connect_timeout 30
  8.    router_id LVS_DEVEL
  9. }
  10. vrrp_script chk_http_port {
  11.                 script "/opt/nginx_pid.sh"
  12.                 interval 2
  13.                 weight 2
  14. }
  15. vrrp_instance VI_1 {
  16.     state BACKUP
  17.     interface eth0
  18.     virtual_router_id 51
  19.     mcast_src_ip 192.168.1.101
  20.     priority 101              ##########权值 要比 master 低。。
  21.     advert_int 1
  22.     authentication {
  23.         auth_type PASS
  24.         auth_pass 1111
  25.     }
  26. track_script { 
  27.         chk_http_port ### 执行监控的服务 
  28.         }
  29.     virtual_ipaddress {
  30.        192.168.1.110
  31.     }
  32. }

之后分别在主从服务器建立nginx的监控脚本:

  1. vi /opt/nginx_pid.sh
  1. #!/bin/bash
  2. A=`ps -C nginx --no-header |wc -l`               
  3. if [ $A -eq 0 ];then                                       
  4.                 /usr/local/nginx/sbin/nginx
  5.                 sleep 3
  6.                 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  7.                        killall keepalived
  8.                 fi
  9. fi

然后分别启动主从服务器的keepalived:

  1. service keepalived start

keepalived的测试

我们在主服务器上执行命令ip a,显示如下:

  1. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  2.     link/ether 00:0c:29:aa:a1:e4 brd ff:ff:ff:ff:ff:ff
  3.     inet 192.168.1.103/24 brd 255.255.255.255 scope global eth0
  4.     inet 192.168.1.110/32 scope global eth0

证明主服务器已经绑定了虚拟ip 192.168.1.110
在从服务器上执行命令ip a,显示如下:

  1. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  2.     link/ether 00:0c:29:2b:94:3b brd ff:ff:ff:ff:ff:ff
  3.     inet 192.168.1.101/24 brd 255.255.255.255 scope global eth0

显示表明从服务器上没有绑定vip 192.168.1.110,只有本机真实ip192.168.1.101
下面我们停止主服务器的nginx进程,再看看ip绑定情况:
主服务器的情况:

  1. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  2.     link/ether 00:0c:29:aa:a1:e4 brd ff:ff:ff:ff:ff:ff
  3.     inet 192.168.1.103/24 brd 255.255.255.255 scope global eth0

从服务器的情况:

  1. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  2.     link/ether 00:0c:29:2b:94:3b brd ff:ff:ff:ff:ff:ff
  3.     inet 192.168.1.101/24 brd 255.255.255.255 scope global eth0
  4.     inet 192.168.1.110/32 scope global eth0

由此可见vip已经指向了从服务器。
参考:http://www.keepalived.org/pdf/UserGuide.pdf

分享到:
评论

相关推荐

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

    在使用keepalived实现高可用性时,需要将nginx服务器的状态与keepalived集成。可以使用chk_http_port脚本来监控nginx服务器的状态,并在出现故障时自动切换到备份服务器。 四、优势 使用nginx和keepalived实现双机...

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

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

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

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

    keepalived实现双机热备

    Keepalived 实现双机热备 Keepalived 是一个类似于 Layer3, 4, 5 交换机制的软件,也就是我们平时说的第 3 层...Keepalived 是一个功能强大且灵活的软件,可以实现双机热备,提高服务器的高可用性和自动故障转移能力。

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

    通过配置Nginx、Keepalived和Tomcat,可以实现高可用、高性能的Web应用系统。 六、Nginx知识点 * Nginx是一个轻量级的Web服务器,支持反向代理、负载均衡和动静分离。 * Nginx的配置文件包括nginx.conf,用于配置...

    nginx+keepalive主从 双机热备

    nginx+keepalive 主从双机热备解决方案 nginx 是一种流行的开源 Web 服务器软件,keepalive 是一种心跳检测机制,用于检测...nginx+keepalive 主从双机热备解决方案是提高服务器高可用性和稳定性的一种有效解决方案。

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

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

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

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

    nginx+keepalive主从 双机热备 + 自动切换解决方案

    2. **安装 Keepalive**:通过源码编译安装 Keepalive 用于实现高可用性集群。 3. **安装 Nginx**:同样采用源码编译的方式安装 Nginx,这是集群中的主要负载均衡组件。 4. **配置 Keepalive**:编写和配置 `...

    Nginx负载均衡+keepalived双机热备

    通过上述步骤,我们可以成功地实现一个基于Nginx的负载均衡系统,并利用Keepalived来实现双机热备,确保了系统的高可用性和稳定性。这种架构不仅能够有效分发流量至多个Web服务器,还能在一台服务器出现故障时自动...

    keepalived+nginx双机热备+负载均衡 非抢占模式

    "keepalived+nginx双机热备+负载均衡 非抢占模式"是一种高级的IT解决方案,用于构建高可用、高性能的Web服务环境。通过Keepalived的VRRP和非抢占模式,保证了服务的连续性;Nginx则提供了灵活的负载均衡策略;配合...

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

    通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构,以提高网站的可用性和性能。 一、体系架构 在Keepalived+Nginx高可靠性负载均衡架构中,keepalived负责实现High-availability(HA)...

    无标题Keepalived+Nginx+Tomcat+MySQL部署双机热备、负载均衡应用服务器

    本文档旨在详细介绍如何在Linux环境下构建一套基于Keepalived、Nginx、Tomcat及MySQL的服务集群,实现双机热备与负载均衡功能。以下内容将详细阐述配置步骤,特别关注于数据库服务器(5号机)的配置流程。 #### ...

    Nginx+Keepalived实现双机热备

    而Keepalived则是一个用于实现高可用性的网络服务,它基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议,可以保证在主服务器失效时自动将流量切换到备份服务器。 **一、Keepalived工作原理**...

    keepalived做双机热备

    在IT行业中,双机热备是一种常见的高可用性解决方案,用于确保关键...总的来说,Keepalived通过VRRP协议实现了双机热备,提供了高可用性和负载均衡的能力。通过合理的配置,可以有效地保护关键业务免受单点故障的影响。

    Keepalived和nginx实现负载和双机热备

    Keepalived和nginx实现负载和双机热备原理 。

    mysql主主搭建+keepalived实现双击热备.docx

    MySQL主主搭建与Keepalived实现双机热备是构建高可用数据库系统的关键技术,它确保了即使在一台服务器故障时,数据服务也能不间断运行。以下是对这一主题的详细解释: 1. **MySQL主主复制**: 主主复制是一种...

Global site tag (gtag.js) - Google Analytics