`
gaojingsong
  • 浏览: 1182525 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【 keepalive + Nginx实现高可用性及负载均衡原理介绍】

阅读更多

keepalive,是在TCP中一个可以检测死连接的机制。

keepalive原理:

TCP会在空闲了一定时间后发送数据给对方:

1.如果主机可达,对方就会响应ACK应答,就认为是存活的。

2.如果可达,但应用程序退出,对方就发RST应答,发送TCP撤消连接。

3.如果可达,但应用程序崩溃,对方就发FIN消息。

4.如果对方主机不响应ack, rst,继续发送直到超时,就撤消连接。这个时间就是默认

的二个小时。

 

 

Keepalived是一个基于VRRP协议来实现的WEB 服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。


 

 

 

 

keepalived理论工作原理

keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能。

 

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web 服务器的状态。 Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器

发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。在本文中将采用这种方式。

 

Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

 

Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。

 

vip即虚拟ip,是附在主机网卡上的,即对主机网卡进行虚拟,此IP仍然是占用了此网段的某个IP。

 

 

最简单配置示例:

--全局配置

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      #虚拟路由ID,主备相同

    mcast_src_ip 192.168.1.103

    priority 102                  # 权值要比 back 高

    advert_int 1

    authentication {          #口令,主备相同

        auth_type PASS

        auth_pass 1111

    }

 

   track_script {

        chk_http_port ### 执行监控的服务

    }

 

   virtual_ipaddress { #VIP 切换漂移的VIP

       192.168.1.110

   }

 

}

 

 

 

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

                              

  • 大小: 59.2 KB
0
1
分享到:
评论

相关推荐

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

    在Keepalived+Nginx高可靠性负载均衡架构中,keepalived负责实现High-availability(HA)功能,控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟...

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

    Keepalived是一款基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)的开源项目,其主要功能是保持网络服务的高可用性。当主服务器出现故障时,Keepalived能够自动将服务切换到备用服务器,实现零...

    nginx1.9.7+keepalive1.3.2

    在描述中提到的 "可搭建Nginx可高用集群和自动故障转移",意味着我们将探讨如何通过这些工具实现高可用性和容错性。 Nginx 1.9.7 版本是一个稳定且经过广泛测试的发行版,提供了许多性能优化和新特性。例如,它可能...

    实现基于nginx的tomcat负载均衡和集群配置

    总结来说,通过Nginx实现基于Tomcat的负载均衡和集群配置,可以有效提高Web服务的可用性、响应速度和扩展性。这不仅降低了单点故障的风险,还能够根据服务器性能动态调整请求分配,从而优化资源利用。在实际部署中,...

    Nginx+Apache负载均衡

    - **高性能负载均衡**:Nginx+Apache 组合提供了一个高性能、低成本的负载均衡解决方案,能够显著提高网站性能和服务可用性。 - **易于配置与管理**:相比昂贵的商用硬件负载均衡器,Nginx 的配置更加简单直观。 - *...

    Nginx+Tomcat负载均衡配置教程

    ### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx...通过以上步骤,您可以成功地实现基于Nginx和Tomcat的负载均衡配置,提高系统的可用性和扩展性。

    nginx负载均衡配置文件demo

    **Nginx负载均衡配置详解** 在高并发的互联网应用环境中,服务器的性能优化和负载分发至关重要。这里我们探讨的是如何使用Nginx作为反向代理和负载均衡器,来提升系统的整体处理能力,特别是在处理静态内容和优化...

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

    本篇将详细介绍如何通过Nginx 和 Keepalive 实现主从双机热备,并配置自动切换功能,以达到负载均衡及高可用集群的目的。 #### 一、环境搭建概述 根据提供的部分内容,我们可以看出整个部署过程分为以下几个主要...

    keepalived-1.2.18+nginx-1.6.2

    这种配置通常用于构建高可用性负载均衡系统,确保即使主服务器出现故障,服务也能无缝切换到备份服务器,同时Nginx作为前端服务器处理HTTP请求,提供静态内容缓存、反向代理和负载均衡等功能。 【标签】"nginx ...

    Niginx操作配置+KeepAlive负载均衡

    在本主题中,我们将深入探讨Nginx的配置操作以及如何结合KeepAlive特性实现负载均衡。 首先,Nginx的配置主要通过修改`nginx.conf`主配置文件或其包含的各个服务器块(server blocks)来完成。配置文件的基本结构...

    Nginx和Keepalive

    【Nginx与Keepalive整合实现高可用负载均衡】 Nginx是一款高性能的HTTP和反向代理服务器,常用于构建高可用的Web服务系统。在本文中,我们将深入探讨如何结合Keepalive工具来实现Nginx的高可用负载均衡。 **一、...

    nginx+keepalive

    总结来说,`nginx+keepalive` 的组合提供了稳定且高效的 Web 服务架构,通过 Keepalive 实现高可用性和负载均衡,而 Nginx 则作为前端服务器处理 HTTP 请求和反向代理任务。这种配置能够有效防止单点故障,提升系统...

    nginx配置优化+负载均衡+动静分离详解.zip_nginx_nginx 负载_优化_优化配置_负载均衡

    在IT行业中,Nginx是一款广泛应用的高性能Web服务器和反向代理服务器,以其高效、稳定和易用的特点深受开发者喜爱。..."nginx配置优化+负载均衡+动静分离详解.txt"这个文件应该包含了详细的步骤和示例,供你参考学习。

    nginx和tomcat配置SSL和负载均衡配置

    ### Nginx 和 Tomcat 配置 SSL 与负载均衡详解 #### 一、Nginx 支持 SSL 的确认方法 Nginx 支持 SSL 加密是现代 Web 服务器的基本需求之一,确保数据传输的安全性。首先,我们需要确认当前安装的 Nginx 版本是否...

    keepalive nginx及面试题压力测试视频.zip

    在IT行业中,网络服务器的高可用性和性能优化是至关重要的,而`keepalive`和`nginx`正是两个关键的工具,用于实现这一目标。在这个名为"keepalive nginx及面试题压力测试视频.zip"的压缩包文件中,包含了关于这两个...

    Nginx+Tomcat+Redis负载均衡、数据分离、session共享

    在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构设计。这种架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理动态请求,而Redis则用于存储和共享Session数据。...

    Nginx的反向代理与负载均衡1

    集群的主要目的是为了实现高性能、价格有效性、可伸缩性、高可用性,同时提供透明性、可管理性和可编辑性。集群可以解决单点故障问题,通过负载均衡来分散服务压力,确保服务的稳定性和响应速度。 1.2.1 集群种类 ...

Global site tag (gtag.js) - Google Analytics