使用nginx做简单的负载均衡,首先得需要2台及以上的服务器,一台作为server,其余作为node。

使用 upstream 模块

在nginx.conf中配置如下:

 http{

      upstream up{    

           server 1.1.1.1;

           server 1.1.1.2;

           #.........................

     }

    #up : upstream 节点名称

    #server : 分发的地址,可以是ip、域名,默认端口为80

}

然后在server里面配置代理地址

server {

      listen 80;

      server name www.up.net;

        location /{

          proxy_pass http://up;

       }

    #up : 上面配置的upstream名称

}

此时,一个简单的分发服务器就搭建好了,然后重载nginx.conf,这种调度会将请求按照时间顺序逐一分配到不同的节点。

这种调度适合节点服务器负载能力相近,差距不是很大的情况下,否则就需要采取另一种调度方法:指定节点的权重,

 http{

      upstream up{    

           server 1.1.1.1  weight = 1;

           server 1.1.1.2  weight = 2;

           #.........................

     }

    #up : upstream 节点名称

    #weight :节点服务器的权重,值越大,分配的几率越大

    #server : 分发的地址,可以是ip、域名,默认端口为80

}

 

根据用户的ip地址的hash值来调度

http{

      upstream up{    

      ip_hash;

           server 1.1.1.1;

           server 1.1.1.2;

           #.........................

     }

    #up : upstream 节点名称

    #server : 分发的地址,可以是ip、域名,默认端口为80

}

 

具体怎么调度,根据实际情况进行选择

 

附,upstream常用参数

server:server、server-node的IP或域名,默认是80,

weight:server、server-node的权重,默认为1,权重越大,被分配的几率越大,例如:weight=2

max_fails:检查节点的健康状态并允许请求失败的次数,达到该次数将节点下线,默认为1,0表示禁止失败尝试,例如:max_fails=2

fail_timeout:max_fails失败次数达到限制后暂停该节点服务器时间,默认是10秒。

backup:热备配置,当server-node池中所有的服务器出现问题后会自动上线backup服务器。

down:标志服务器不可用,不参与负载均衡,这个参数通常配合IP_HASH使用。

max_conns:最大连接数,通常对server-node硬件不一致的情况进行配置。

keepalive:限制空闲长连接的最大数量。

keepalive_timeout:空闲长连接的最长保持时间。

keepalive_requests:每个长连接最多可以处理的请求数

 

最后修改:2021 年 12月 15日 11:43:10

文章声明:非特殊说明,本文版权归 凌萍分享 所有,转载请注明出处
本文标题:使用nginx做简单的负载均衡
本文标签:nginx,负载均衡
如果觉得本篇文章对你有用,请随意赞赏;赞赏将用于服务器、域名开支