foreverwaiting
万人非你X

参考:https://mp.weixin.qq.com/s/ylprzDaCrncnLB2Owa-ivw

仅为个人笔记:

一、Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。

二、

Apache

优点:稳定、开源、跨平台

缺点:重量级的、它不支持高并发的服务器。在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存。

Nginx

优点:基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接、跨平台服务器,可以运行在 Linux、Windows、FreeBSD、Solaris、AIX、Mac OS 等操作系统上、稳定。

三、反向代理

Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器。Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。

四、业务中,正向代理结合反向代理

 

五、

Nginx 支持的负载均衡调度算法方式如下:

①weight 轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,Nginx 会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 

这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率。 

权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。

②ip_hash:每个请求按照发起客户端的 ip 的 hash 结果进行匹配,这样的算法下一个固定 ip 地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下 Session 共享的问题。

③fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配

响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少,它是结合了前两者的优点的一种调度算法。

但是需要注意的是 Nginx 默认不支持 fair 算法,如果要使用这种调度算法,请安装 upstream_fair 模块。

④url_hash:按照访问的 URL 的 hash 结果分配请求,每个请求的 URL 会指向后端固定的某个服务器,可以在 Nginx 作为静态服务器的情况下提高缓存效率。

同样要注意 Nginx 默认不支持这种调度算法,要使用的话需要安装 Nginx 的 hash 软件包。

六、代理【正向代理,反向代理】

1、正向代理:【客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。】

如:访问外网,找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!

 

【客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的 IP 地址,还有代理程序的端口。】

【正向代理,"它代理的是客户端",是一个位于客户端和原始服务器(Origin Server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器)。然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。】

 

正向代理的用途:

  • 访问原来无法访问的资源,如 Google。

  • 可以做缓存,加速访问资源。

  • 对客户端访问授权,上网进行认证。

  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。

 

2、反向代理

 需求:某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了。

 解决:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题。【直接使用 Nginx 进行反向代理实现的,并且通过封装 Nginx 和其他的组件之后起了个高大上的名字:Tengine。】

 

【多个客户端给服务器发送的请求,Nginx 服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。】

特点:【客户端请求明确,请求具体由哪台服务器处理并不明确,Nginx 扮演的就是一个反向代理角色。客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。】【反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。】

  

反向代理的作用: 

    • 保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。

    • 负载均衡,通过反向代理服务器来优化网站的负载【客户端发送的、Nginx 反向代理服务器接收到的请求数量,就是我们说的负载量,请求数量按照一定的规则进行分发,到不同的服务器处理的规则,就是一种均衡规则。将服务器接收到的请求按照规则分发的过程,称为负载均衡。【硬件负载均衡和软件负载均衡】】

posted on 2020-11-22 22:56  foreverwaiting  阅读(94)  评论(0编辑  收藏  举报