Nginx概述
背景
当网站的访问量达到一定的数量后,单台服务器不能满足用户的请求,需要多台服务器时,这时候就可以用Nginx来做反向代理。并且多台服务器可以平均分担负载,不会因为一台服务器闲置,而另一台服务器负载高而怠机。
如图所示:当用户访问地址时,通过阿里云服务器,可以代理到Nginx服务器上,利用Nginx内置的算法(轮询和weight算法),将发送的请求转发到最底层的集群服务器上面,这样可以有效的减少单台服务器的压力。
是什么
Nginx是C语言开发的高性能HTTP服务器及反向代理服务器,由俄罗斯的程序设计师研发。
作用
主要作用包括反向代理和负载均衡
反向代理:反向代理是指以代理服务器来接收internet上的请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,此时代理服务器对外就表现为一个服务器。
负载均衡:负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务。通过这种负载分担技术,将外部发送来的请求均匀分配到对称结构中的每一台服务器上,而接受到请求的服务器独立的回应用户的请求。均衡负载能够平均分配客户请求,以快速获得数据,解决大量并发访问服务的问题。
优点
官方测试Nginx能够支撑5万并发量,并且CPU/内存等资源消耗非常的低,运行非常的稳定。
轮询算法
按用户请求顺序把用户的请求逐一分配到不同端口的服务器,如果后端服务器宕机,该服务器会自动被剔除,请求会分配给正常的服务器,不会影响用户的访问。
weight算法
weight算法是在轮询的基础上加上权重(默认是rr+weight),权重和访问成正比,权重越大,转发给你的请求越多。