除了负载均衡,Nginx 能做的真是太强大了!
Nginx应该是现在最火的web和反向署理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发状况下,相较Apache,有优异的体现。
那除了负载均衡,她还有什么其他的用处呢,下面咱们来看下。
一、静态署理
Nginx拿手处理静态文件,是十分好的图片、文件服务器。把所有的静态资源的放到nginx上,能够使使用动态别离,性能更好。
二、负载均衡
Nginx经过反向署理能够实现服务的负载均衡,避免了服务器单节点故障,把恳求依照一定的战略转发到不同的服务器上,到达负载的作用。
常用的负载均衡战略有:
1、轮询
将恳求按次序轮番地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实践的衔接数和当时的体系负载。
2、加权轮询
不同的后端服务器可能机器的装备和当时体系的负载并不相同,因此它们的抗压才能也不相同。
给装备高、负载低的机器装备更高的权重,让其处理更多的请;而装备低、负载高的机器,给其分配较低的权重,降低其体系负载,加权轮询能很好地处理这一问题,并将恳求次序且依照权重分配到后端。
3、ip_hash(源地址哈希法)
依据获取客户端的IP地址,经过哈希函数计算得到一个数值,用该数值对服务器列表的巨细进行取模运算,得到的结果便是客户端要拜访服务器的序号。
采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行拜访。
4、随机
经过体系的随机算法,依据后端服务器的列表巨细值来随机选取其中的一台服务器进行拜访。
5、least_conn(最小衔接数法)
因为后端服务器的装备不尽相同,对于恳求的处理有快有慢,最小衔接数法依据后端服务器当时的衔接状况,动态地选取其中当时积压衔接数最少的一台服务器来处理当时的恳求,尽可能地提高后端服务的利用功率,将担任合理地分流到每一台服务器。
三、限流
Nginx的限流模块,是基于漏桶算法实现的,在高并发的场景下十分有用,如下图:
1、装备参数
1)limit_req_zone界说在http块中,$binary_remote_addr 表明保存客户端IP地址的二进制形式。
2)Zone界说IP状况及URL拜访频率的共享内存区域。
zone=keyword标识区域的名字,以及冒号后边跟区域巨细。16000个IP地址的状况信息约1MB,所以示例中区域能够存储160000个IP地址。
3)Rate界说最大恳求速率。示例中速率不能超过每秒100个恳求。
2、设置限流
burst排队巨细,nodelay不限制单个恳求间的时间。
四、缓存
1、浏览器缓存,静态资源缓存用expire。
2、署理层缓存
五、黑白名单
1、不限流白名单
2、黑名单
好了,上面就是nginx几个常用功能,静态别离、负载均衡、限流、缓存、黑白名单等,你都了解了吗?
Nginx应该是现在最火的web和反向署理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发状况下,相较Apache,有优异的体现。
我有话说: