Nginx 负载均衡实战

warning: 这篇文章距离上次修改已过740天,其中的内容可能已经有所变动。

有时候,为了提高程序负载、增加服务器处理能力,就需要负载均衡技术。该技术主要是把用户请求分发到不同的服务器上去处理,这样做有效的解决单台服务器处理慢,和单机故障问题,真是一举多得的办法。

nginx 实现负载均衡要依赖一个upstream模块和proxy_pass反向代理指令,这个模块通过一些简单的调度算法来实现请求分发从而达到负载均衡策略。下面看nginx.conf文件怎么

nginx负载均衡模块默认支持4种算法:

  1. 轮询:这是upstream模块默认支持的算法,该算法有几个附加属性 ① weight轮询权值 ② backup 备份服务器。
  2. ip_hash:这是按请求ip使用hash结果进行分配,如果采用这种算法有效解决了session问题。
  3. fair:这个是最智能的算法。因为该算法是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。
  4. url_hash:这个算法和ip_hash类似,不同的是hash请求地址url的结果来分配请求。

使用轮询算法

upstream test{
    server 127.0.0.1:91 weight=1;  #weight 权值。值越大分配到的访问几率越高
    server 127.0.0.1:92 weight=2;
    server 127.0.0.1:93 backup;
}
server {
    listen 85 ;
    index index.php  index.html index.htm;
    location / {
        proxy_pass http://test;
    }
}

使用ip_hash算法

upstream test{
    ip_hash;
    server 127.0.0.1:91;
    server 127.0.0.1:92;
    #server 127.0.0.1:93 backup; 使用ip_hash算法时,不能使用backup状态
}
server {
    listen 85 ;
    index index.php  index.html index.htm;
    location / {
        proxy_pass http://test;
    }
}

其余两个算法需要额外的第三方模块支持,所以在这就不做演示啦,不过配置都是一样的。引入指令即可。

none
最后修改于:2022年04月16日 15:56

添加新评论