Nginx+keepalived机制

本文介绍了Nginx作为高性能的HTTP和反向代理服务器,强调其在负载均衡中的作用,以及Keepalived如何通过健康检查确保服务器群的高可用性。Nginx通过负载均衡技术分发请求,减轻单台服务器压力,而Keepalived则在服务器出现问题时自动剔除并切换到正常服务器,实现服务的无缝切换。
摘要由CSDN通过智能技术生成

前言:

        上篇博客中提到了虚拟机的安装,这次就来看看我们接受的第一个文档,Nginx+keepalived技术,具体环境搭建请参照文档,这里只做有关介绍和小编自己的理解。

nginx 简介

         Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

         Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx的优点

        Nginx 可以在大多数UnixLinux OS 上编译运行,并有 Windows 移植版。Nginx是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在连接高并发的情况下,NginxApache服务器不错的替代品

        Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

适用情况

        Nginx适用于当网站的访问量达到一定数量后,单台服务器不能满足用户的请求,需要多台服务器时,这时候就可以用Nginx来做反向代理,并且多台服务器可以平均分担负载,不会因为一个服务器闲置,而另外一台服务器负载高而待机。

        如图所示:当用户通过访问地址http:xxxx来访问,通过阿里云服务器,可以代理到Nginx服务器上,利用Nginx内置的算法,将发送的http请求转发到最底层的集群的服务器上面,这样可以有效的减少单击服务器的压力。


Nginx主要的应用就是负载均衡和反向代理。其含义分别为:

负载均衡:

        负载均衡是由多台服务器对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务。通过这种负载分担技术,将外部发送来的请求均匀分配到对称结构中的每一台服务器上,而接受到请求的服务器独立的回应客户的请求。均衡负载能够平均分配客户请求到服务器阵列,以快速获得数据,解决大量并发访问服务问题。(大致可以理解为平均分配发送到服务器的各种请求,不至于让一个服务器累死,而另一个服务器闲到生锈。。。)

反向代理:

        反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。(可以理解成,我们通过这项技术,将我们原本的服务器隐藏了,而虚拟了一个表象给访问者,从而让我们的服务器更安全。)

 

Keepalived简介

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

    工作原理:Layer3,4&7工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:

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

Layer4:

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

Layer7:

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

keepalived作用

        keepalived是一个高性能的服务器,可提供高可用或热备解决方案,keepalived可以用来防止服务器单点故障的发生,也就简介中提到的自动剔除故障服务器,将请求转向可用服务器。

        通过监听keepalived的心跳机制,我们可以很清楚的知道当前Nginx的状态。


 

总结:

         Nginx不仅能够隐藏原有的服务器,还能均衡分配各种发送到服务器的请求,然后用keepalived来防止服务器故障,这两个在一块,简直是绝配。本来一点都不了解的东西,现在已经算是在入门的路上了,学习,其实是挺简单的一件事情。

(PS:以上内容为小编作为初学者在学习过程中的了解,如有错误,欢迎指正。感谢您的阅读)

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值