nginx
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
nginx
upstream backend {
server backend1.example.com weight=3;
server backend2.example.com weight=2;
}
nginx
upstream backend {
least_conn;
server backend1.example.com;
server backend2.example.com;
}
nginx
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}
nginx
upstream backend {
hash $request_uri consistent;
server backend1.example.com;
server backend2.example.com;
}
nginx
upstream backend {
random;
server backend1.example.com;
server backend2.example.com;
}
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=30s;
server backend2.example.com max_fails=3 fail_timeout=30s;
}
upstream backend {
sticky cookie srv_id expires=1h domain=.example.com path=/;
server backend1.example.com;
server backend2.example.com;
}
ngx_http_upstream_dynamic_module
实现应用类型
服务器性能差异
会话需求
缓存效率
故障恢复
keepalive
连接数max_fails
和fail_timeout
问题1:后端服务器负载不均 - 解决方案:改用最少连接算法或调整权重
问题2:会话丢失 - 解决方案:实现IP哈希或会话保持策略
问题3:某台服务器响应慢但未下线
- 解决方案:配置慢启动和健康检查
nginx
server backend1.example.com slow_start=30s;
通过合理选择和组合这些算法与策略,可以构建出适合各种业务场景的高效负载均衡解决方案。