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

相关推荐

  • hyper-v 压缩/检索磁盘 、vhd与vhdx 转换、删除快照

    1 hyper-v 压缩/检索磁盘 一.缩与收缩的区别 压缩:(针对动态磁盘),压缩虚拟磁盘本身。动态磁盘不会自动回收已删除的文件的空间 收缩:缩小虚拟磁盘里的最大可用空间,但前提要做【压缩卷】操作.收缩操作只支持VHDX 注:如果操作的虚拟磁盘所属的虚拟机是在Hyper-V群集,请使用故障转移群集工具 二.虚拟磁盘压缩操作: ===压缩目标 ===打开计算…

    2022年7月28日
    2.8K00
  • Redis删除特定前缀key的优雅实现

    Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 直接在linux下通过redis的keys命令匹配到所有的key,然后调用系统命令xargs来删除,看似非常完美,实则风险巨大 因为Redis的单线程服务模式,命令keys会阻塞正常的业务请求,如果你一次keys匹配的数量过多或者…

    2023年1月17日
    1.5K00
  • rsync的搭建与使用

    rsync是数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。 已支持跨平台,可以在Windows与Linux间进行数据同步。 Ubuntu安装 Centos安装 基本用法 rsync语法有三种,分别是本地到本地形式Local to Local,本地到远程Local to Remot…

    2022年11月19日
    1.5K00
  • 在Proxmox VE下开启vGPU – Tesla P4为例

    对于 Proxmox VE 8,需要使用16.0+版本的 vGPU 驱动程序,低版本的驱动程序不支持 Linux 6.x 内核 最近我刚升级了我的 NAS 主机,并且购买了一块 Tesla P4 显卡。我想把 vGPU 分配给虚拟机上的 Jellyfin 容器硬解使用,经过几天的研究,我简单总结了使用方法。关于如何使用硬解,我会在下一篇文章中进行说明。 术语…

    2024年2月19日
    1.9K00
  • 利用Nextcloud搭建企业私有云盘系统

    1. 场景介绍 Nextcloud是一款免费开源的私有云存储系统,采用PHP+MySQL开发,提供了多个同步客户端支持多种设备访问,使用Nextcloud可以快速便捷地搭建一套属于自己或企业的云同步云盘,从而实现跨平台跨设备文件同步编辑、共享、版本控制、团队协作等功能。   不同于公有云盘,私有云盘需要部署在自己的服务器上(物理机或者云主机),并通过公网进行…

    2023年12月5日
    1.7K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信