nginx负载均衡配置
进入/etc/nginx目录,编辑nginx.conf文件;
#这里的域名要和下面proxy_pass的一样 upstream test.com { server 192.168.1.10:8989 weight=1; server 192.168.1.10:8988 weight=2; } server { listen 80; server_name 192.168.1.10; location / { proxy_pass http://test.com; proxy_redirect default; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
负载均衡策略
1、轮询
这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。
upstream test.com {
server 192.168.1.10:8989 ;
server 192.168.1.10:8988 ;
}
2、最少连接
把请求分配到连接数最少的server
upstream test.com {
least_conn;
server 192.168.1.10:8989 ;
server 192.168.1.10:8988 ;
}
3、权重
使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。
upstream test.com {
server 192.168.1.10:8989 weight=1;
server 192.168.1.10:8988 weight=2;
}
4、ip_hash
每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。
upstream test.com {
ip_hash;
server 192.168.1.10:8989 weight=1;
server 192.168.1.10:8988 weight=2;
}
ip_hash可以和weight结合使用。
--------------------------------------------------------------------------------------------------------------------------------
upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器
简单的配置方式如下
upstream name {
ip_hash;
server 192.168.1.10:8000;
server 192.168.1.10:8001 down;
server 192.168.1.10:8002 max_fails=3;
server 192.168.1.10:8003 fail_timeout=20s;
server 192.168.1.10:8004 max_fails=3 fail_timeout=20s;
}
核心配置信息如下
ip_hash:指定请求调度算法,默认是weight权重轮询调度,可以指定
server host:port:分发服务器的列表配置
-- down:表示该主机暂停服务
-- max_fails:表示失败最大次数,超过失败最大次数暂停服务
-- fail_timeout:表示如果请求受理失败,暂停指定的时间之后重新发起请求