文章15 | 阅读 6191 | 点赞0
Nginx有多种负载均衡策略,以下将列出6种:
策略 | 说明 |
---|---|
轮询 | 默认方式 |
ip_hash | 依据客户端 IP 转发方式 |
weight | 权重方式 |
least_conn | 最少连接方式 |
sticky(第三方) | 根据分配给客户端的cookie |
fair(第三方) | 响应时间方式 |
直接列出每种策略的配置
公用配置
#使用下面列出的策略
upstream zy {
.....
}
server {
server_name zy.csxiuneng.com;
location / {
proxy_pass http://zy;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 256k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
在轮询中,如果服务器down掉了,会自动剔除该服务器
#默认轮询方式
upstream zy {
server 127.0.0.1:8011;
server 127.0.0.1:8012;
}
基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,但是无法区分处于同一个局域网内的多个客户端
#ip_hash算法,使用$remote_addr变量值,也就是客户端IP做hash算法
upstream zy {
ip_hash;
server 127.0.0.1:8011;
server 127.0.0.1:8012;
}
weight参数用于指定轮询几率,weight的默认值为1,;weight的数值越大分配的请求越多
#轮询权重,更多请求分配到8011端口
upstream zy {
server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5;
server 127.0.0.1:8012;
}
把请求转发给连接数较少的后端服务器
#将请求分配到最少连接的服务器
upstream zy {
least_conn;
server 127.0.0.1:8011;
server 127.0.0.1:8012;
}
sticky是第三方模块,nginx-sticky-module,安装可参考:https://blog.csdn.net/zhuyu19911016520/article/details/91351773
此模块根据服务器给客户端的cookie,客户端再次请求时会带上此cookie,nginx会把有此cookie的请求转发到颁发cookie的服务器上,解决 ip_hash 中局域网内用户负载不均的问题
upstream zy {
#使用sticky,1小时过期
sticky expires=1h domain=zy.csxiuneng.com path=/;
server 127.0.0.1:8011;
server 127.0.0.1:8012;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://zhuyu.blog.csdn.net/article/details/93710215
内容来源于网络,如有侵权,请联系作者删除!