Nginx的负载均衡策略主要包括以下几种:

  1. 轮询(Round Robin):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。这是Nginx的默认策略,适合服务器配置相当、无状态且短平快的服务使用。
  2. 权重(Weight):指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。这种方式可以根据后端服务器的性能,为它们分配不同的权重,以达到更好的负载均衡效果。
  3. IP绑定(IP Hash):按照基于客户端IP的分配方式,确保相同的客户端的请求一直发送到相同的服务器,以保证session会话。这种方式适合有状态服务,比如session。
  4. 最少连接数(Least Connections):把请求转发给连接数最少的后端服务器。这种方式可以减少服务器的负载,使其更加均衡。
  5. 第三方策略:除了上述几种策略,还有一些第三方策略可以实现更复杂的负载均衡需求,这些策略需要安装第三方插件
  • fair

    按照服务器端的响应时间来分配请求,响应时间短的优先分配。
  • url_hash

    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。

下面是一个基本的Nginx负载均衡配置示例,假设你有两个后端Web服务器(backend1.example.combackend2.example.com),你想要在它们之间分配HTTP请求:

http {
# 定义后端服务器组
upstream backend {
# server指令定义后端服务器及其参数
server backend1.example.com;
server backend2.example.com; # 可选的负载均衡算法,默认为轮询
# least_conn; # 最少连接数
# ip_hash; # 根据客户端IP进行哈希,实现会话保持 # 更多的服务器配置参数,如权重、备用状态等
# server backend1.example.com weight=3;
# server backend3.example.com backup; # 备用服务器
} # 虚拟主机配置
server {
# 监听端口
listen 80; # 域名或IP地址
server_name example.com; # 位置块,用于匹配请求URI
location / {
# 将请求代理到后端服务器组
proxy_pass http://backend; # 代理超时设置
proxy_connect_timeout 1s;
proxy_send_timeout 1s;
proxy_read_timeout 1s; # 传递请求头和请求体
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 其他代理设置
proxy_http_version 1.1;
proxy_set_header Connection "";
} # 可以添加更多的location块来处理特定的路径或模式
} # 可以添加更多的server块来配置不同的虚拟主机
}

在这个配置中,upstream块定义了一个名为backend的后端服务器组,其中包含两个服务器。默认情况下,Nginx使用轮询算法将请求分发到这些服务器上。你可以在server指令中使用weight参数来指定服务器的权重,权重较高的服务器将接收更多的请求。使用backup参数可以指定备用服务器,只有在所有非备用服务器都不可用时才会接收请求。

Nginx的负载均衡策略(4+2)的更多相关文章

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

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

  2. Nginx的负载均衡策略

    Nginx的负载均衡策略 个人博客地址: https://note.raokun.top 拥抱ChatGPT,国内访问网站:https://www.playchat.top 共六种: 轮询.权重.ip ...

  3. 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 ...

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

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

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

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

  6. 解析 Nginx 负载均衡策略

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

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

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

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

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

  9. NginX——配置负载均衡

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

  10. nginx 负载均衡策略

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

随机推荐

  1. Volatility 内存数字取证方法

    计算机数字取证分为内存取证和磁盘取证,活取证与死取证,不管是那种取证方式,都应尽量避免破环犯罪现场,例如通过内存转储工具对内存进行快照,通过磁盘克隆工具对磁盘进行克隆,方便后期的分析工作,这里将研究内 ...

  2. window hadoop yarn任务执行失败:ExitCodeException exitCode=-1073741515

    环境 window server 2019 单机版hadoop3.3.1 和 winutils.exe 异常 winutils.exe task create -m -1 -c -1 continer ...

  3. iOS安装包瘦身总结

    前段时间APP要做资源压缩,需要把项目中使用的所有图片资源进行压缩,以减小APP安装包体积.想着既然压缩APP资源是为了缩小APP体积,那么来一遍APP整体瘦身流程并做一下总结吧. 整个过程分三步: ...

  4. 【学习笔记】Python 环境隔离

    目录 前言 venv venv 环境管理 venv 包管理 virtualenv 以及 virtualenvwrapper 安装 virtualenvwrapper 环境管理 virtualenvwr ...

  5. 【scikit-learn基础】--模型持久化

    模型持久化(模型保存与加载)是机器学习完成的最后一步.因为,在实际情况中,训练一个模型可能会非常耗时,如果每次需要使用模型时都要重新训练,这无疑会浪费大量的计算资源和时间. 通过将训练好的模型持久化到 ...

  6. react 八千字长文深入了解react合成事件底层原理,原生事件中阻止冒泡是否会阻塞合成事件?

    壹 ❀ 引 在前面两篇文章中,我们花了较大的篇幅介绍react的setState方法,在介绍setState同步异步时提到,在react合成事件中react对于this.state更新都是异步,但在原 ...

  7. NC24755 [USACO 2010 Dec S]Apple Delivery

    题目链接 题目 题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course ...

  8. NC50493 石子合并

    题目链接 题目 题目描述 将n堆石子绕圆形操场排放,现要将石子有序地合并成一堆.规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分. 请编写一个程序,读入堆数n及每堆的石子 ...

  9. 如何设置 vcpkg 依赖特定编译器

    最近项目要部署到 gitlab-ci 上,所以远程机器上也要安装好编译环境 在相关的环境安装完后,发现编译项目时提示找不到三方库的符号文件 看到这个错误的第一反应就是依赖库的版本不对,因为远程机器上不 ...

  10. Xposed 原理

    Xposed 使用替换app_process的方式(这是个二进制文件) xposed 的 app_main2.cpp中做了xposed的初始化 /** Initialize Xposed (unles ...