Nginx几种负载均衡模式的实现示例
作者:就叫飞六吧
本文主要介绍了Nginx几种负载均衡模式的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.轮询 (Round Robin) - 默认模式
按顺序逐一分配请求到各个后端服务器。
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
2.加权轮询 (Weighted Round Robin)
根据权重分配请求,权重越高,被分配的请求越多。
upstream backend {
server 192.168.1.10 weight=3;
server 192.168.1.11 weight=2;
server 192.168.1.12 weight=1;
}
3.IP 哈希 (IP Hash)
根据客户端 IP 地址进行哈希计算,同一 IP 的请求会被分配到同一台服务器,可以解决 session 共享问题。
upstream backend {
ip_hash;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
4.最少连接 (Least Connections)
将请求分配给当前连接数最少的服务器。
upstream backend {
least_conn;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
5.一致性哈希 (Consistent Hash)
需要第三方模块支持,根据指定的 key 进行哈希分配。
upstream backend {
hash $request_uri consistent;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
6.通用哈希 (Generic Hash)
可以基于任意变量进行哈希。
upstream backend {
hash $remote_addr; # 基于客户端IP
# hash $cookie_jsessionid; # 基于cookie
server 192.168.1.10;
server 192.168.1.11;
}
7.随机 (Random)
随机选择一台服务器(Nginx 1.15.1+ 版本支持)。
upstream backend {
random;
server 192.168.1.10;
server 192.168.1.11;
server 192.168.1.12;
}
常用参数配置
upstream backend {
server 192.168.1.10 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.11 weight=3;
server 192.168.1.12 backup; # 备用服务器
server 192.168.1.13 down; # 标记为不可用
}
参数说明:
weight: 权重,默认为 1max_fails: 允许请求失败的次数,默认为 1fail_timeout: 失败超时时间,默认为 10 秒backup: 备份服务器,只有其他服务器都不可用时才使用down: 标记服务器永久不可用
最常用的模式:
- 无状态应用:轮询、加权轮询、最少连接
- 有状态应用:IP Hash、一致性哈希
到此这篇关于Nginx几种负载均衡模式的实现示例的文章就介绍到这了,更多相关Nginx 负载均衡模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
