租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

四种nginx负载均衡策略的介绍

发布时间:2023-02-02 11:00:32

1、基于轮询的均衡策略:

这个是Nginx默许的均衡算法,如果你不进行相干的配置,默许会履行该策略,配置以下:


nginx负载均衡策略.png


可以看出,nginx负载均衡使用到的指令不多,其中比较重要的两个是upstream和proxy_pass,upstream块定义一个后端小集群,里边配置相干的Server组成这个集群,同时upstream为这个集群起个相应的名字,本实例叫myapp1.proxy_pass处于location块中,表示对所有符合/的request,将会交给哪一个集群进行处理,本实例为http://myapp1。


但又一点我们需要注意,上面http://myapp1中myapp1一定要是upstream起的名字,对协议是使用http或者https,都无所谓,如果你的协议使用https,则将http直接改成https便可。另外,如果你在upstream中的server指令中指定了协议名,那末在proxy_pass指令中就不需要加上协议名称了。


nginx负载均衡使用反向代理实现,也就是我们上面使用到的proxy_pass指令,支持的协议不止是http和https,同时还支持FastCGI、uwsgi、SCGI、memcached、gRPC,如果你需要使用除http、https外的其他协议,我们不能使用proxy_pass指令了,应当转而使用相应的指令,如fastcgi_pass、uwsgi_pass、scgi_pass、memcached_pass、grpc_pass。


该策略处理负载,小编认为或者有缺点的,不能避免某台Server出现负载太高的情况。由于如果有些要求履行时间太长,而系统的并发量却非常大,那末便可能致使某台Server出现request堆积,负载太高,snowslide is possible~


2、基于最少连接数的均衡策略:

该策略主要使用了least_conn指令,具体配置以下:


nginx负载均衡策略.png


该策略或者比较人性化的,可以依照机器的实际情况进行刚需分配。


3、基于ip-hash的均衡策略:

固然了,如果我们想实现这样一个功能,我们想让对相同客户真个要求每次都被分发到同一个Server进行处理,上面两种策略都是不做到。此策略可确保来自同一客户真个要求始终定向到同一服务器,但此服务器不可用时除外。相干配置以下:


nginx负载均衡策略.png


既然相同客户真个要求能被同一台Server进行处理,那末相同客户真个会话Session就能够实现持久化了。


4、基于加权轮询的均衡策略:

基于加权轮询的策略就不需要过量讲授了,就是在轮询的基础上加上个权重信息


nginx负载均衡策略.png


这类策略合适Server机器处理能力有区分的情况。


以上就是四种nginx负载均衡策略的介绍。