Ningx负载均衡
- upstream(上游)配置负载均衡
- 1、weight(加权轮询)
- 2、ip_hash(负载均衡)
- 3、url hash负载均衡
- 4、least_conn(最小连接负载均衡)
upstream(上游)配置负载均衡
Nginx负载均衡
参考: nginx从安装到高可用
nginx默认
采用轮询
的方式进行负载均衡
1、weight(加权轮询)
权重值越大
,请求转发
到该上游服务器比例
就越大
权重值为0
,只有在其他服务器故障
时才会被用于负载均衡。
# 配置上游服务器集群
## proxyName是上游服务器集群的名称
upstream proxyName {# 上游服务器1的 IP地址和端口,权重为1server 192.168.1.173:8080 weight=1;# 上游服务器2的 IP地址和端口,权重为5server 192.168.1.174:8080 weight=5;# 上游服务器3的 IP地址和端口,权重为2server 192.168.1.175:8080 weight=2;
}
2、ip_hash(负载均衡)
ip_hash
策略,该策略会使用客户端IP地址
的哈希值
来选择上游服务器
。
具体来说:当客户端第一次
请求时,nginx会将客户端的IP地址进行哈希计算,然后使用哈希值对上游服务器的数量取模,以确定应该使用哪个上游服务器处理该请求。
如果客户端IP地址不变
,则后续
的请求
都会被转发到同一个上游服务器
。
hash算法实际上只会计算 192.168.1
这段做哈希
。
使用ip_hash的注意点
:
不能把后台服务器直接移除
,只能标记down
.
# 配置上游服务器集群
## proxyName是上游服务器集群的名称
upstream proxyName {# ip_hash策略ip_hash# 上游服务器1的 IP地址和端口server 192.168.1.173:8080;# 上游服务器2的 IP地址和端口server 192.168.1.174:8080;# 上游服务器3的 IP地址和端口server 192.168.1.175:8080;
}
3、url hash负载均衡
hash $request_url
:使用请求的 URL
进行哈希
,以便在后续的负载均衡中选择服务器。这里使用的是哈希算法,可以根据不同的负载均衡策略选择不同的算法。
# 定义一个名为 [proxyName] 的 upstream 用于代理请求
upstream proxyName {# 根据请求的 URL 进行哈希,以便在后续的负载均衡中选择服务器hash $request_url;# 定义三个服务器,用于实现负载均衡# 上游服务器1的 IP地址和端口server 192.168.1.173:8080;# 上游服务器2的 IP地址和端口server 192.168.1.174:8080;# 上游服务器3的 IP地址和端口server 192.168.1.175:8080;
}
4、least_conn(最小连接负载均衡)
least_conn
:使用最小连接数
负载均衡策略,即选择连接数最少的服务器进行转发。使用 least_conn 策略可以避免某个服务器负载过高,而其他服务器负载较轻的情况。
# 定义一个名为 [proxyName] 的 upstream 用于代理请求
upstream proxyName {# 使用 least_conn 策略,即选择连接数最少的服务器进行转发least_conn;# 定义三个服务器,用于实现负载均衡# 上游服务器1的 IP地址和端口server 192.168.1.173:8080;# 上游服务器2的 IP地址和端口server 192.168.1.174:8080;# 上游服务器3的 IP地址和端口server 192.168.1.175:8080;
}
