Nginx负载均衡配置

yungame 2019-12-10

种负载均衡算法

upstream 支持4种负载均衡调度算法:

A)轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器;

B)ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。

C)url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。

D)fair:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块。

示例配置如下:

upstream ServerList {
    server 127.0.0.1:7878 weight=2;
        server 127.0.0.5:7878 weight=3;
        server 192.168.10.121:3333 backup;# 热备
        server 192.168.10.121:6767 down;# 不参与负载
    }
    
    server {
        listen 80;
        server_name 192.168.1.1;
        location / {
                proxy_pass http://ServerList;
          }  
    }

后端服务器在负载均衡调度中的状态

down 当前server暂时不参与负载均衡
backup 预留的备份服务器(当正在使用的后端服务异常时,启动预留服务)
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停的时间
max_conns 限制最大的接受的连接数

相关推荐