上一篇我们介绍了Nginx的背景,现在我们就要开始正式对Nginx的学习了。本篇我们将对Nginx的基本定义进行介绍,了解Nginx到底是什么。然后我们会介绍Nginx最基本的三个概念:反向代理、负载均衡、动静分离。
1、Nginx是什么
Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中有较好的表现。
Nginx专为性能优化设计与开发,性能是其最重要的考量,现实上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发的连接数。
2、正向代理和反向代理
2.1、正向代理
正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
正向代理的用途:
- 访问原来无法访问的资源,如google
- 可以做缓存,加速访问资源
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
2.2、反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就是可以访问。我们只需要将请求发送到反向代理服务器上,有反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服务器地址,隐藏了真实服务器地址。
反向代理的作用:
- 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
- 负载均衡,通过反向代理服务器来优化网站的负载
2.3正向代理与反向代理的区别
本质上没什么区别,正向代理是用户端的,反向代理是服务器端的,角度不同而已。
3、负载均衡
Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
为了提升网站的服务能力,网站可以采用集群部署,就像话剧院有多个入口一样。这时候,就需要一个协调者,来均衡的分配这些用户的请求,可以让用户的可以均匀的分派到不同的服务器上。
单个服务器解决不了,我们增加服务器的数量,然后将请求分别分发到各个服务器上,将原来请求集中到单个服务器上的情况改为将请求分发到多个服务器上,降幅在分发到不同的服务器,也就是我们所说的负载均衡。
4、动静分离
为了加快网站的解析速度,可以把动态界面和静态界面由不同的服务器来解析,加快解析速度。降低原来服务器的压力。