Nginx作为高性能的反向代理服务器,支持多种负载均衡策略。以下是三种核心负载均衡方式及其配置示例:
默认策略,按顺序将请求均匀分发到所有后端服务器。
upstream backend {
server 192.168.1.101:80;
server 192.168.1.102:80;
server 192.168.1.103:80;
}
server {
location / {
proxy_pass http://backend;
}
}
特点:
- 简单高效,默认权重相同。
- 适合服务器性能相近的场景。
通过weight
参数分配不同权重,控制服务器接收请求的比例。
upstream backend {
server 192.168.1.101:80 weight=3; # 处理3倍请求
server 192.168.1.102:80 weight=2;
server 192.168.1.103:80 weight=1;
}
特点:
- 适应服务器性能不均的场景(如CPU、内存差异)。
- 权重越高,分配的请求越多。
根据客户端IP的哈希值固定分配到同一后端服务器,保持会话一致性。
upstream backend {
ip_hash;
server 192.168.1.101:80;
server 192.168.1.102:80;
server 192.168.1.103:80;
}
特点:
- 解决Session共享问题(如无Redis时)。
- 可能导致负载不均(某些IP请求密集)。
nginx
upstream backend {
least_conn;
server 192.168.1.101:80;
server 192.168.1.102:80;
}
nginx-upstream-fair
模块)。通过合理配置,Nginx能显著提升系统的可用性和扩展性。