Nginx的负载均衡策略

个人博客地址: https://note.raokun.top 拥抱ChatGPT,国内访问网站:https://www.playchat.top

共六种: 轮询、权重、ip_hash、least_conn、fair、url_hash

1、轮询(Round Robin)负载均衡策略:这是一种基本的负载均衡策略,将请求顺序转发给每个后端服务器,每个后端服务器依次处理请求,而轮询正是按照这样的方式平均地为每个后端服务器分配请求。

http {
upstream backend {
  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com;
}

server {
  listen 80;
  server_name example.com;

  location / {
     proxy_pass http://backend;
  }
}

}

  

2、权重(Weight)负载均衡策略:通过为每个后端服务器分配不同的权重,将请求按照权重比例分配到不同的后端服务器,以实现负载均衡。例如,如果后端服务器A的权重是3,后端服务器B的权重是2,则在处理请求时,服务器A会收到3/(3+2)=60%的请求,而服务器B会收到 2/(3+2)=40%的请求。

http {
upstream backend {
  server backend1.example.com weight=5;
  server backend2.example.com weight=10;
  server backend3.example.com weight=5;
}

server {
  listen 80;
  server_name example.com;

  location / {
     proxy_pass http://backend;
  }
}
}

  

3、IP散列(ip_hash)负载均衡策略:使用客户端的IP地址来计算散列值,将同一个IP地址的请求发送到同一个后端服务器上,以实现会话保持(Session Persistence)。

http {
upstream backend {
  ip_hash;

  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com;
}

server {
  listen 80;
  server_name example.com;

  location / {
     proxy_pass http://backend;
  }
}

}

  

4、最少连接数(least_conn)负载均衡策略:将请求发送到当前连接数最少的后端服务器上,以达到最优的负载均衡效果。

http {
upstream backend {
  least_conn;

  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com;
}

server {
  listen 80;
  server_name example.com;

  location / {
     proxy_pass http://backend;
  }
}

}  

  

5、公平(fair)负载均衡策略:将请求基于当前后端服务器的处理速度,将请求发送到当前处理速度最快的后端服务器上,以充分利用服务器资源并提高响应速度。

http {
upstream backend {
 server backend1.example.com;
 server backend2.example.com;
fair;
}

server {
 listen 80;
 location / {
   proxy_pass http://backend;
}
}
}  

  

6、URL散列(url_hash)负载均衡策略:使用客户端请求中的URL地址计算散列值,并将同一个URL地址的请求发送到同一个后端服务器上,以实现会话保持(Session Persistence)和动态负载均衡(Dynamic Load Balancing)功能。

http {
upstream backend {
 server backend1.example.com;
 server backend2.example.com;
 hash $request_uri;
 hash_method crc32;
}

server {
 listen 80;
 location / {
   proxy_pass http://backend;
}
}
}

  

Nginx的负载均衡策略的更多相关文章

  1. Nginx专题(2):Nginx的负载均衡策略及其配置

    本文介绍了Nginx的负载均衡策略,一致性hash分配原理,及常用的故障节点的摘除与恢复配置. 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第一期-宜信支付结算八方数据团队高级技术经理 ...

  2. nginx+tomcat负载均衡策略

    測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用n ...

  3. Nginx多种负载均衡策略搭建

    背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略. 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于default.c ...

  4. [日常] nginx与负载均衡策略

    upstream mail.sina.net { #upstream的负载均衡,weight是权重,可以根据机器配置定义权重.weigth参数表示权值,权值越高被分配到的几率越大. server we ...

  5. 解析 Nginx 负载均衡策略

    转载:https://www.cnblogs.com/wpjamer/articles/6443332.html 1 前言 随着网站负载的不断增加,负载均衡(load balance)已不是陌生话题. ...

  6. 【Nginx】负载均衡-加权轮询策略剖析

    转自:江南烟雨 本文介绍的是客户端请求在多个后端服务器之间的均衡,注意与客户端请求在多个nginx进程之间的均衡相区别. 如果Nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服 ...

  7. [转载] nginx的负载均衡

    原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...

  8. NginX——配置负载均衡

    A.            在http模块加上upstream配置 upstream www.myweb.com { server  127.0.0.1:9100 weight=3; server  ...

  9. nginx 负载均衡策略

    nginx 负载均衡策略   1. 轮询轮询方式是nginx负载均衡的默认策略,根据每个server的权重值来轮流发送请求,例如:upstream backend {server backend1.e ...

  10. Nginx服务器之负载均衡策略(6种)

    一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器.详情请查看我的另一篇博客. 二.Ng ...

随机推荐

  1. Matlab %伍

    第五章:初级绘图进阶 Special Plots  loglog semilogx semilogy plotyy hist bar pie polar Logarithm Plots  x = lo ...

  2. ASP.NET利用JQuery实现AJAX(前台脚本代码)调用后台静态方法

    前台页面的script代码 PS: 如果不需要参数的话,就把data那一行删除 $(function () { //AJAX同步后台 var orderid = parseInt($(this).pa ...

  3. Windows平台在当前文件夹下打开CMD

    Windows平台在当前文件夹下打开CMD的方法: 在路径栏中输入 cmd.exe ,然后敲回车.

  4. Oracle Fusion Middleware Introduction

    Oracle Fusion Middleware Oracle Fusion Middleware is a comprehensive family of software products tha ...

  5. Navicat 连接MySQL数据库 报错2059

    Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法 2059 - Authentication ...

  6. 安卓自动化查看包名和activity名的方法

    1,cmd下,adb shell "dumpsys window | grep mCurrentFocus" 2,CMD中输入adb logcat ActivityManager: ...

  7. Python第八章实验报告

    一.实验对象:<零基础学Python>第八章的3道实例和4道实战 二.实验环境:IDLE Shell 3.9.7 三.实验要求:学习使用标准模块和第三方模块 四.实验过程: 实例01 创建 ...

  8. 使用redis分布式锁重复执行采坑

    事件:生产环境部署两台,每天凌晨1点,定时任务同步更新(先删除,后全部插入)账号表,使用了redis分布式锁,发现定时任务还是执行了两次,导致数据重复,影响对应业务. 原因分析:定时任务执行的逻辑是调 ...

  9. vue-print-nb的应用

    1.cnpm i vue-print-nb 2.触发事件:v-print="printObj" 3.触发的是个对象: printObj:{                 id: ...

  10. Javaweb学习笔记第十一弹(内含Servlet相关知识呦!)

    Web核心 静态资源:HTML,CSS,JavaScript,图片等,负责页面展现 动态资源:Servlet,JSP等,负责逻辑处理 数据库:负责存储数据 HTTP协议:定义通信规则 Web服务器:负 ...