Ningx负载均衡

Ningx负载均衡

upstream(上游)配置负载均衡

Nginx负载均衡

参考: nginx从安装到高可用

nginx默认采用轮询的方式进行负载均衡

1、weight(加权轮询)

权重值越请求转发到该上游服务器比例越大

权重值为0,只有在其他服务器故障时才会被用于负载均衡。

shell 复制代码
# 配置上游服务器集群
## proxyName是上游服务器集群的名称
upstream proxyName {
    # 上游服务器1的 IP地址和端口,权重为1
    server 192.168.1.173:8080 weight=1;
    # 上游服务器2的 IP地址和端口,权重为5
    server 192.168.1.174:8080 weight=5;
    # 上游服务器3的 IP地址和端口,权重为2
    server 192.168.1.175:8080 weight=2;
}

2、ip_hash(负载均衡)

ip_hash策略,该策略会使用客户端IP地址哈希值来选择上游服务器

具体来说:当客户端第一次请求时,nginx会将客户端的IP地址进行哈希计算,然后使用哈希值对上游服务器的数量取模,以确定应该使用哪个上游服务器处理该请求。

如果客户端IP地址不变,则后续请求会被转发到同一个上游服务器

hash算法实际上只会计算 192.168.1这段做哈希

使用ip_hash的注意点

不能把后台服务器直接移除,只能标记down.

shell 复制代码
# 配置上游服务器集群
## 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 进行哈希,以便在后续的负载均衡中选择服务器。这里使用的是哈希算法,可以根据不同的负载均衡策略选择不同的算法。

shell 复制代码
# 定义一个名为 [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 策略可以避免某个服务器负载过高,而其他服务器负载较轻的情况。

shell 复制代码
# 定义一个名为 [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;
}

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/506edc1625084849a30b315c6e44e265.png)

相关推荐
小马爱打代码1 小时前
微服务外联Feign调用:第三方API调用的负载均衡与容灾实战
微服务·架构·负载均衡
物联网老王2 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
艾伦_耶格宇3 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
一位摩羯座DBA4 小时前
Redhat&Centos挂载镜像
linux·运维·centos
cui_win5 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
风清再凯5 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
深圳安锐科技有限公司5 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
猫头虎5 小时前
猫头虎 AI工具分享:一个网页抓取、结构化数据提取、网页爬取、浏览器自动化操作工具:Hyperbrowser MCP
运维·人工智能·gpt·开源·自动化·文心一言·ai编程
cocologin7 小时前
RIP 技术深度解析
运维·网络·网络协议
庸子8 小时前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins