Nginx负载均衡介绍

Nginx应用场景之一就是负载均衡。在访问量较多的时候,可以通过负载均衡,将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提高系统的可伸缩性与可靠性

下图为负载均衡示例图,当用户请求发送后,首先发送到负载均衡服务器,而后由负载均衡服务器根据配置规则将请求转发到不同的web服务器上。

Nginx负载均衡介绍

Nginx策略

Nginx内置负载均衡策略主要分为三大类,分别是轮询、最少连接和ip hash

  • 最少连接:请求分配给活动连接数最少的服务器,哪台服务器连接数最少,则把请求交给哪台服务器,由nginx统计服务器连接数
  • ip hash:基于客户端ip的分配方式
  • 轮询:以循环方式分发对应用服务器的请求,将请求平均分发到每台服务器上。

Nginx配置文件修改

普通轮询方式
http {
    # 定义转发分配规则
    upstream myapp1 {
        server srv1.com; # 要转发到的服务器,如ip、ip:端口号、域名、域名:端口号
        server srv2.com:8088;
        server 192.168.0.100:8088;
    }

    server {
        listen 80; # nginx监听的端口

        location / {
        	# 使用myapp1分配规则,即刚自定义添加的upstream节点
        	# 将所有请求转发到myapp1服务器组中配置的某一台服务器上
            proxy_pass http://myapp1; 
        }
    }
}
权重轮询方式  会根据配置的权重进行请求分发。
# 定义转发分配规则
upstream myapp1 {
	server srv1.com weight=1; # 该台服务器接受1/6的请求量
	server srv2.com:8088 weight=2; # 该台服务器接受2/6的请求量
	server 192.168.0.100:8088 weight=3; # 该台服务器接受3/6的请求量;
}
最少连接 适合请求处理时间长短不一造成服务器过载的情况
# 定义转发分配规则
upstream myapp1 {
	least_conn; # 把请求分派给连接数最少的服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}
ip hash  确保了相同的客户端的请求一直发送到相同的服务器
# 定义转发分配规则
upstream myapp1 {
	ip_hash; # #保证每个请求固定访问一个后端服务器
	server srv1.com;
	server srv2.com:8088;
	server 192.168.0.100:8088;
}

这样就是Nginx基础的负载均衡配置方式!!!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6109

(0)
郭靖的头像郭靖
上一篇 2022年11月16日 上午10:40
下一篇 2022年11月16日 下午6:11

相关推荐

  • Linux——手把手教你解决sudo指令无法使用的问题

    解决sudo指令无法使用的问题 1. 为什么不能使用 sudo指令能够使某一条指令拥有root权限,即以root权限去执行 例如 sudo ls -l 但是,如果是新创建的普通账户,一般来说一开始是不能执行sudo命令的: 根据提示,LQF这一用户并不在sudoers这个文件中,因此没有使用sudo的权利suduers文件位于路径/etc/sudoerssu…

    2024年5月31日
    1.8K00
  • MySQL 用户管理和权限管理

    在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理。一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等,这样方便管理。当然,具体怎么管理权限根据实际情况来确定。无论如何,都需要创建多个用户来管理权限。root 是数据库的超级管理员用户,对于普通开发人员来说,权限太大了,如果不小心做了一些不可逆…

    2022年6月9日
    2.0K00
  • 缩小vhdx文件的大小

    使用 Hyper-V 提供的 Optimize-VHD 进行缩小,执行之后 VHDX 文件的确是变小了,但是也还没有那么小 此时应进入到 WSL2 中,运行 zerofree 将 ext4 文件系统内已经不用的块填零,但 zerofree 不能运行在已经挂载为 rw 的文件系统上,那就把文件系统挂载为 rea…

    2023年7月21日
    2.6K00
  • 如何在 Ubuntu 22.04 上启用 BBR?

    由于购买的VPS或者主机数据中心都在国外,经常会发生网络拥堵的情况,我们可以通过启用BBR来优化。 在Ubuntu系统上启用BBR可以提升网络连接速度,优化网络拥堵情况。 BBR代表瓶颈带宽,RTT是拥塞控制系统。 您可以在 Linux 桌面上启用 TCP BBR 以改善整体网上冲浪体验。 默认情况下,Linux 使用 Reno 和 CUBIC 拥塞控制算法…

    2024年3月12日
    2.3K00
  • Ansible 连接主机显示报错的处理方案

    一、在ansible安装完毕后一般需要以SSH的方式连接到需要进行管理的目标主机,一开始遇到了如下问题: 原因分析:没有在ansible管理节点(即安装ansible的节点)上添加目标节点(即需要管理的节点)的ssh认证信息。 解决步骤:1:管理节点生成SSH-KEY 成功后在~/.ssh/路径下将生成ssh密钥文件:id_rsa及id_rsa.pub2:添…

    2023年9月28日
    1.7K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信