一、概述
Nginx 实现负载均衡的两个最重要的点时 upstream 和 proxypass。
其中,upstream 必须配置在server层以外,而 proxypass 则配置在 server 层以内。
二、配置文件示例
upstream webserver {
server 192.168.72.49:8080 weight=3;
server test.haveyb.com:80 weight=2;
}
server {
listen 80;
server_name ttt.haveyb.com;
location / {
proxy_pass http://webserver;
index index.html index.htm;
}
}
注:upstream 中,可以使用ip + 端口号形式,也可以使用域名+端口号形式。
三、upstream 配置项
1、backup(预留的备用节点)
当其他节点都不可用时,该节点启动使用;一旦有一个节点恢复正常,该备用节点重新恢复为备用状态
2、max_conns(限制最大连接数)
3、down(表示当前server 暂时不参与负载均衡)
4、max_fails(允许请求失败的次数)
5、fail_timeout(经过max_fails 次数后,服务暂停的时间)
四、Nginx 的轮询策略
1、轮询(默认)
按时间顺序逐一分配
2、加权轮询(权重 weight)
weight 值越大,被访问的概率越高
3、ip_hash
每个请求按访问ip的hash结果分配,结果就是同一个ip,分配的始终是同一个节点
4、url_hash
每个请求按访问url的hash结果分配,使同一个url定向访问到一个节点
5、least_conn(最少连接数)
哪一个节点连接数少,就把请求分发到哪个节点
6、hash自定义key