Nginx负载的5种策略
1、轮询(默认)
upstream server_group {
server 192.168.1.1:8080;
server 192.168.1.2:8080;
}
2、指定权重
指定轮询几率,weight权重大小和访问比率成正比,用于后端服务器性能不均的情况。
upstream server_group {
server 192.168.1.1:8080 weight=1;
server 192.168.1.2:8080 weight=2;
}
3、ip_hash
每个请求,按访问ip的hash结果进行分配,这样每个访客,会固定访问同一个后端服务器,可以解决session的问题。
upstream server_group {
ip_hash;
server 192.168.1.1:8080;
server 192.168.1.2:8080;
}
4、fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream server_group {
server 192.168.1.1:8080;
server 192.168.1.2:8080;
fair;
}
5、url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server 192.168.1.1:8080;
server 192.168.1.2:8080;
hash $request_uri;
hash_method crc32;
}
示例
http {
# 定义一个服务器组
upstream server_group {
# 默认的轮询算法
wrr;
server 192.168.1.1:8080;
server 192.168.1.2:8080;
server other.example.com:8080;
}
server {
listen 80;
location / {
proxy_pass http://server_group/;
}
}
}
评论区