1. Round Robin(轮询)
默认的负载均衡算法,按照定义的上游服务器列表依次轮询选择一个服务器来处理请求。
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
2. Least Connections(最小连接数)
选择连接数最少的服务器处理请求,适用于处理时间较长的任务。
upstream backend {
least_conn;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
3. IP Hash
使用客户端的 IP 地址进行哈希计算,确保相同 IP 的请求总是被发送到同一台上游服务器,有助于保持会话一致性。
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
4. Weighted Round Robin(加权轮询)
给每个服务器分配权重,按照权重比例轮询选择服务器。
upstream backend {
server backend1.example.com weight=3;
server backend2.example.com weight=2;
server backend3.example.com weight=1;
}
5. Weighted Least Connections(加权最小连接数)
与加权轮询类似,但是选择连接数最少的服务器。
upstream backend {
least_conn;
server backend1.example.com weight=3;
server backend2.example.com weight=2;
server backend3.example.com weight=1;
}
6. Backup Servers(备用服务器)
定义备用服务器,当其他服务器不可用时,请求将被转发到备用服务器。
upstream backend {
server backend1.example.com;
server backend2.example.com backup;
}
7. Health Checks(健康检查)
使用 health_check 指令启用健康检查,定期检测上游服务器的可用性。
upstream backend {
server backend1.example.com;
server backend2.example.com;
health_check;
}
以上只是一些常见的负载均衡配置示例,实际应用中可以根据需求选择合适的算法和参数。在 Nginx 配置文件中,通常将 upstream 块定义在 http 块中,然后在 server 配置中使用 proxy_pass 将请求转发给上游服务器组。
转载请注明出处:http://www.zyzy.cn/article/detail/10156/Nginx