Nginx负载均衡模式

今天看到一篇Nginx负载均衡模式的文,觉得讲得很通俗易懂连我都看懂了!

放链接

以下是我的个人总结

首先,什么是Nginx?

Nginx是个高性能轻量级的web/http服务器,百度能承受5w并发连接数的响应;它主要提供的功能是:反向代理、负载均衡和HTTP 缓存。

其次,负载均衡是什么?

我们的项目在一台服务器上运行,它的接待请求是有上限的,到达上限后其他请求只能等待;出现这种情况我们就可以在多个服务器上分别运行这个项目,增加接待量;那么当有多台服务器的时候,Nginx如何分配每次请求由哪个服务器处理呢?这时候就用到了负载均衡;

Nginx有四种内置的负载均衡策略:

1. 轮询 负载均衡策略(默认,缺省配置)

即每次将请求按顺序轮流发送至相应的服务器上,此策略适合服务器配置相当,无状态且短平快的服务使用

upstream mysvr { 
    server 127.0.0.1:7878;
    server 192.168.10.121:3333;       
}

注:如果有一台服务器down掉了 ,这台服务器会被自动剔除;

2. 最少连接数 负载均衡策略

此策略是指每次将请求分发到当前连接数最少的服务器上,也就是 Nginx 会将请求试图转发给相对空闲的服务器以实现负载平衡;

此策略适合请求处理时间长短不一造成服务器过载的情况;

upstream mysvr { 
least_conn; server
127.0.0.1:7878; server 192.168.10.121:3333; }

3. ip-hash 负载均衡策略

此策略会让相同的客户端ip请求相同的服务器,是解决session不能跨服务器的方法之一(先开个坑,下次专门写一篇)

upstream mysvr { 
ip_hash; server
127.0.0.1:7878; server 192.168.10.121:3333; server 134.168.10.121:3333; }

 注:当有服务器需要剔除,必须手动down掉

4. 权重 负载均衡策略

此策略会根据服务器权重进行请求分发,如果三台服务器有一台配置比较高,那么这台服务器可以进行处理更多请求,给这台服务器配置权重为 3 ,其他服务器权重不设置就默认为1;那么如果有5个请求,其中3个请求会分配给权重为3的那台服务器;

权重越高处理的请求数也越多,适合服务器配置硬件差别较大的情况;

upstream mysvr { 
    server 127.0.0.1:7878 weight=3;
    server 192.168.10.121:3333;   
    server 134.168.10.121:3333;       
}

注:

在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight);

此策略可以与least_conn和ip_hash结合使用

原文地址:https://www.cnblogs.com/javencs/p/14304277.html