Nginx+keepalived机制

来源:互联网 发布:网站建设方案书 阿里云 编辑:程序博客网 时间:2024/06/13 04:45

前言:

       上篇博客中提到了虚拟机的安装,这次就来看看我们接受的第一个文档,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:以上内容为小编作为初学者在学习过程中的了解,如有错误,欢迎指正。感谢您的阅读)

1 0