1.轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务
upstream myserver {
server localhost:10001;
server localhost:10002;
}
2.权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍
upstream myserver {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
3.iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)
upstream myserver {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
4.最少连接
将请求分配到连接数最少的服务上
upstream myserver {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
5.fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream myserver {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
--------------------------------------------------------
以轮训为例,如下是nginx.conf完整代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream myserver {
server localhost:10001;
server localhost:10002;
}
server {
listen 10000;
server_name localhost;
location / {
proxy_pass http://myserver;
proxy_redirect default;
}
}
}
本文介绍了Nginx的五种负载均衡策略:轮询、权重分配、IP哈希、最少连接和公平算法。通过配置示例详细解释了如何在Nginx中实现这些策略,以优化服务器性能和用户访问体验。例如,轮询策略按顺序分配请求,权重则允许根据服务器性能调整分配比例,IP哈希确保相同IP的请求始终路由到同一服务器,最少连接策略将请求发送给连接数最少的服务器,而公平算法则依据服务器响应时间进行分配。
375

被折叠的 条评论
为什么被折叠?



