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
相关推荐
在Keepalived+Nginx高可靠性负载均衡架构中,keepalived负责实现High-availability(HA)功能,控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟...
Keepalived是一款基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)的开源项目,其主要功能是保持网络服务的高可用性。当主服务器出现故障时,Keepalived能够自动将服务切换到备用服务器,实现零...
在描述中提到的 "可搭建Nginx可高用集群和自动故障转移",意味着我们将探讨如何通过这些工具实现高可用性和容错性。 Nginx 1.9.7 版本是一个稳定且经过广泛测试的发行版,提供了许多性能优化和新特性。例如,它可能...
总结来说,通过Nginx实现基于Tomcat的负载均衡和集群配置,可以有效提高Web服务的可用性、响应速度和扩展性。这不仅降低了单点故障的风险,还能够根据服务器性能动态调整请求分配,从而优化资源利用。在实际部署中,...
使用 keepalive 实现双机热备,使用 nginx 实现负载均衡和反向代理。 四、解决方案的优点 nginx+keepalive 主从双机热备解决方案有以下优点: * 提高服务器的高可用性和稳定性 * 实现自动切换,减少人工干预 * ...
- **高性能负载均衡**:Nginx+Apache 组合提供了一个高性能、低成本的负载均衡解决方案,能够显著提高网站性能和服务可用性。 - **易于配置与管理**:相比昂贵的商用硬件负载均衡器,Nginx 的配置更加简单直观。 - *...
### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx...通过以上步骤,您可以成功地实现基于Nginx和Tomcat的负载均衡配置,提高系统的可用性和扩展性。
**Nginx负载均衡配置详解** 在高并发的互联网应用环境中,服务器的性能优化和负载分发至关重要。这里我们探讨的是如何使用Nginx作为反向代理和负载均衡器,来提升系统的整体处理能力,特别是在处理静态内容和优化...
本篇将详细介绍如何通过Nginx 和 Keepalive 实现主从双机热备,并配置自动切换功能,以达到负载均衡及高可用集群的目的。 #### 一、环境搭建概述 根据提供的部分内容,我们可以看出整个部署过程分为以下几个主要...
这种配置通常用于构建高可用性负载均衡系统,确保即使主服务器出现故障,服务也能无缝切换到备份服务器,同时Nginx作为前端服务器处理HTTP请求,提供静态内容缓存、反向代理和负载均衡等功能。 【标签】"nginx ...
在本主题中,我们将深入探讨Nginx的配置操作以及如何结合KeepAlive特性实现负载均衡。 首先,Nginx的配置主要通过修改`nginx.conf`主配置文件或其包含的各个服务器块(server blocks)来完成。配置文件的基本结构...
【Nginx与Keepalive整合实现高可用负载均衡】 Nginx是一款高性能的HTTP和反向代理服务器,常用于构建高可用的Web服务系统。在本文中,我们将深入探讨如何结合Keepalive工具来实现Nginx的高可用负载均衡。 **一、...
总结来说,`nginx+keepalive` 的组合提供了稳定且高效的 Web 服务架构,通过 Keepalive 实现高可用性和负载均衡,而 Nginx 则作为前端服务器处理 HTTP 请求和反向代理任务。这种配置能够有效防止单点故障,提升系统...
在IT行业中,Nginx是一款广泛应用的高性能Web服务器和反向代理服务器,以其高效、稳定和易用的特点深受开发者喜爱。..."nginx配置优化+负载均衡+动静分离详解.txt"这个文件应该包含了详细的步骤和示例,供你参考学习。
### Nginx 和 Tomcat 配置 SSL 与负载均衡详解 #### 一、Nginx 支持 SSL 的确认方法 Nginx 支持 SSL 加密是现代 Web 服务器的基本需求之一,确保数据传输的安全性。首先,我们需要确认当前安装的 Nginx 版本是否...
在IT行业中,网络服务器的高可用性和性能优化是至关重要的,而`keepalive`和`nginx`正是两个关键的工具,用于实现这一目标。在这个名为"keepalive nginx及面试题压力测试视频.zip"的压缩包文件中,包含了关于这两个...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构设计。这种架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理动态请求,而Redis则用于存储和共享Session数据。...
集群的主要目的是为了实现高性能、价格有效性、可伸缩性、高可用性,同时提供透明性、可管理性和可编辑性。集群可以解决单点故障问题,通过负载均衡来分散服务压力,确保服务的稳定性和响应速度。 1.2.1 集群种类 ...