当前位置: 首页 > article >正文

nginx学习(4)Nginx 负载均衡

负载均衡:是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。

在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,
而且 Nginx 提供了几种分配方式(策略):

Nginx高效负载均衡策略详解

1、轮询(默认)
按请求的时间顺序依次逐一分配,如果服务器down掉,能自动剔除。

   upstream myserver {
        server 172.31.0.99:8083;
        server 172.31.0.99:8084;
    }

    server {
        listen       80;        
        #server_name  localhost;
       server_name  172.31.0.99 ;
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
           proxy_pass http://myserver;
            index  index.html index.htm;
        }

     
  1. 权重
    weight 越高,被分配的客户端越多,默认为 1。比如:
   upstream myserver {
        server 172.31.0.99:8083  weight=5;
        server 172.31.0.99:8084  weight=10;
    }


172.31.0.99:8083是第一个服务器的地址和端口号,而weight=5表示该服务器的权重为5。权重可以用来确定在轮询中该服务器接收请求的频率。权重越高,该服务器接收的请求就越多。

172.31.0.99:8084是第二个服务器的地址和端口号,而weight=10表示该服务器的权重为10。与第一个服务器相比,这个服务器的权重更高,因此在轮询中它将接收更多的请求。

通过使用权重,你可以根据服务器的性能或负载能力来调整请求的分配比例。权重可以在多个服务器之间进行灵活的调整,以满足你的特定需求。 

3、 ip_hash
按请求 ip 的 hash 值分配,每个访客固定访问一个后端服务器。比如:

   upstream myserver {
     ip_hash;	
        server 172.31.0.99:8083  ;
        server 172.31.0.99:8084  ;
    }
在upstream块中,列出了两个服务器,分别是172.31.0.99:8083172.31.0.99:8084。因此请求将平均分配给这两个服务器。

通过使用ip_hash,可以实现基于客户端IP的负载均衡,使得来自同一IP地址的请求始终由同一台服务器处理。这种配置对于需要会话持久性或特定用户需要连接到同一服务器的应用场景非常有用。

4、fair
按服务器的响应时间来分配客户端请求,响应时间越短,分配客户端请求越多.

upstream myserver {
    	fair; 
        server 172.31.0.99:8083  ;
        server 172.31.0.99:8084  ;
    }

http://www.kler.cn/news/136668.html

相关文章:

  • 百度文心一言接入流程-java版
  • 养狗为什么需要宠物空气净化器?宠物空气净化器排行榜公布!
  • C++对象模型:关于对象
  • 在Java中,需要每120分钟刷新一次的`assetoken`,并且你想使用Redis作为缓存来存储和管理这个令牌
  • Golang | Leetcode Golang题解之第507题完美数
  • 新鲜出炉面试题之【说说spring spring MVC spring boot的区别】
  • 《云计算:云端协同,智慧互联》
  • Vue:从本地加载json文件
  • Redis维护缓存的方案选择
  • 砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格
  • Java-抽象类、抽象方法
  • 竞赛选题 目标检测-行人车辆检测流量计数
  • 《Vue》——从新电脑开始搭建一个已有Vue2项目的环境
  • Trino 与Hive 有差异的函数
  • 北斗成为全球民航通用卫星导航系统
  • openRPA开源项目源码编译
  • IP地址定位是如何实现的?
  • 自动驾驶学习笔记(十)——Cyber通信
  • 梦想照进现实
  • GZ033 大数据应用开发赛题第07套
  • 九宫格 图片 自定义 路径
  • Jetson JetPack-5.1.2-L4T-R35.4.1 修复libvargus内存损坏问题
  • 在springBoot中同时使用mysql和MongoDB
  • vue3使用pinia实现数据缓存
  • 算法设计与分析算法实现——删数问题
  • Node.js环境配置级安装vue-cli脚手架