目录
1.前言介绍
2.代理
2.1正向代理
2.2反向代理
3.负载均衡
3.1理论:
3.2.负载均衡算法
4.动静分离
1.前言介绍
Nginx是一款轻量级的,高性能的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
ngnix的功能:反向代理 负载均衡 内存小 并发量大(支持5W并发)
注意:
nginx默认是不支持tcp负载均衡的,我们想ngnix对tcp进行负载均衡的话,得我们自己加编译参数或者修改配置文件。
2.代理
代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。刚开始的时候,代理多数是帮助内网client访问外网server用的后来出现了反向代理,"反向"这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内。
2.1正向代理
就是代理客户端去访问外部数据,这样的好处就是对外屏蔽了内部的客户端,让客户端更加安全。
比如我们使用的VPN就是其中的一种应用。
2.2反向代理
代理的是服务器,对客户端进行了屏蔽,服务端可以进行扩展,对客户端都是透明的。
比如百度,谷歌这些网站都是代理的。
3.负载均衡
3.1理论:
负载均衡:将连接分摊到多个操作单元上进行执行。就是说我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。
3.2.负载均衡算法
IP哈希 源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。(解决session问题 session共享可以使用redis)
轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。
加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。
最小连接数法:由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。
4.动静分离
动静分离,通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同时能减少请求的延时,提高访问速度。
动静分离只有好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响。