Nginx个人理解

Nginx个人理解

一、什么是Nginx

Nginx同Apache一样都是一种WEB服务器。
具体来说,Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

相比于apache,nginx是一个 轻量级高并发 的服务器。

二、Nginx的作用

2.1 反向代理

在这里插入图片描述
(在反向代理中,Proxy和Server同属于一个LAN(图中方框内),隐藏了服务端信息;)
多个客户端向服务器发送请求,要经过nginx代理服务器。Nginx服务器接收到之后,按照一定的规则分发给后端的业务处理服务器进行处理。
在这个过程中,请求的来源(客户端)是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。
客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理,客户端不需要任何配置就可以访问。

  • 关于反向代理:
    反向代理代理的是服务端,代服务端接收请求,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
    反向代理的作用:
    (1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网;
    (2)负载均衡,通过反向代理服务器来优化网站的负载。

2.2 负载平衡

将服务器接收到的请求按照规则分发到不同服务器 的过程,称为负载均衡。
Nginx支持的负载均衡调度算法方式如下:

  1. RR轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器。若后端服务器宕机,能自动剔除。
  2. weight轮询(默认,常用):指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  3. ip_hash(常用):每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
  4. fair(第三方):智能调整调度算法,按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  5. url_hash(第三方):按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率。

2.3 http服务器(动静分离)

在这里插入图片描述
Nginx 服务器将接收到的请求分为动态请求和静态请求。
静态请求直接从 nginx 服务器所设定的根目录路径去取对应的资源,动态请求转发给真实的后台去处理。

2.4 正向代理

在这里插入图片描述
(在正向代理中,Proxy和Client同属于一个LAN(图中方框内),隐藏了客户端信息;)

正向代理,是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
当要把服务器作为代理服务器的时候,可以用Nginx来实现正向代理。


版权声明:本文为sinat_36831051原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。