Nginx负载均衡策略_nginx高可用集群和负载均衡集群

Nginx负载均衡策略_nginx高可用集群和负载均衡集群nginx的负载均衡策略有4种:轮询(默认)最基本的配置方法,它是upstream的默认策略,每个请求会按时间顺序逐一分配到不同的后端服务器。参数有:项目Valuefail_timeout与max_fails结合使用max_fails设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了fail_time服务器会被认为停机的时间长度,默认为10s。backup标记该服

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

nginx的负载均衡策略有4种:

轮询(默认)

最基本的配置方法,它是upstream的默认策略,每个请求会按时间顺序逐一分配到不同的后端服务器。

参数有:

项目 Value
fail_timeout 与max_fails结合使用
max_fails 设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了
fail_time 服务器会被认为停机的时间长度,默认为10s。
backup 标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。
down 标记服务器永久停机了。
http { 
    
	#ip_hash动态服务器组
    upstream userserviceurl { 
   
		ip_hash;
        server localhost:8092 weight=2;
        #server localhost:8094 max_fails=3 fail_timeout=20s;
		server localhost:8094;
	    #server localhost:8096 backup; ip_hash策略时不支持用backup 
        server localhost:8095 down;
    }
	
    server { 
    
        listen       80;
        server_name  localhost;  
        location / { 
   
            root   html;
            index  index.html index.htm;
        }
		
		location /pms/ { 
   
			proxy_pass http://userserviceurl;
        }  
        error_page   500 502 503 504  /50x.html;
        location = /50x.html { 
   
            root   html;
        }
    }
}

注意:

在轮询中,如果服务器down掉了,会自动剔除该服务器。 缺省配置就是轮询策略。 此策略适合服务器配置相当,无状态且短平快的服务使用。 权重

在轮询策略的基础上制定沦陷的几率。例如

upstream foo { 
   
    server localhost:8001 weight=2;
    server localhost:8002;
    server localhost:8003 backup;
    server localhost:8004 max_fails=3 fail_timeout=20s;
}

这里例子中,weight参数用于制定轮询的几率,weight默认值为1;weight的数值和被访问的几率成正比。

注意

权重越高分配到需要处理的请求越多。 此策略可以与least_conn和ip_hash结合使用。
此策略比较适合服务器的硬件配置差别比较大的情况。

ip_hash

负载均衡器按照客户端IP地址的分配方式,可以确保相同客户端的请求一直发送到相同的服务器。这样每个访客都固定访问一个后端服务器。

upstream foo { 
   
    ip_hash;
    server localhost:8001 weight=2;
    server localhost:8002;
    server localhost:8003 down;
    server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意

在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。 ip_hash不能与backup同时使用。
此策略适合有状态服务,比如session。 当有服务器需要剔除,必须手动down掉。

least_conn 最小连接

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果

upstream foo { 
   
    least_conn;
    server localhost:8001 weight=2;
    server localhost:8002;
    server localhost:8003 backup;
    server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意

此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。 除了上面这些调度策略之后,还有一些第三方的调度策略可以集成到nginx中。

在实际运用中,需要根据不同的场景选择不同的策略,大多是多种策略结合使用以达到实际需求的性能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182411.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月13日 下午3:36
下一篇 2022年10月13日 下午3:36


相关推荐

  • [从零开始学DeepFaceLab-4]: 使用-命令行八大操作步骤-第1步:命令行环境准备

    [从零开始学DeepFaceLab-4]: 使用-命令行八大操作步骤-第1步:命令行环境准备目录总体流程 步骤 1 命令行环境准备 1 1 命令 1 clearworkspa bat 必选 2 预备知识 2 1 根目录结构 2 2 internal 目录 2 3workspace 目录 命令行工作目录总体流程 步骤 1 命令行环境准备 1 1 命令 1 clearworkspa bat 必选 1 命令名称 从源视频中提取图片 1 clearworkspa bat 2 Windows 命令源代码 echooffecho

    2026年3月17日
    2
  • vue生成二维码并下载[通俗易懂]

    vue生成二维码并下载[通俗易懂]vue生成二维码图片,这里使用的是qrcode.js这个插件1、下载插件npminstall–saveqrcodejs22、组件内使用<template><Buttontype=”primary”size=”small”@click=”getScan()”>扫一扫</Button><Buttontype=”primary”size=”small”@click=”getDownload()”>下载</Bu..

    2022年10月3日
    4
  • Python画图显示中文

    Python画图显示中文matplotlib作图时默认设置下为英文,无法显示中文,只需要添加下面两行代码即可plt.rcParams[‘font.sans-serif’]=[‘SimHei’]plt.rcParams[‘axes.unicode_minus’]=FalseExampleimportmatplotlib.pyplotaspltfromnumpy.randomimportmul…

    2022年6月1日
    39
  • js 页面刷新

    js 页面刷新刷新为新的页面获得当前页面的 url 即浏览器显示的地址 window location href 按下 enter 页面刷新为百度刷新为当前页面 1 history go 0 2 location reload 3 location location4 location assign location 5 document execcommand refresh 6 window navigate location 7 location repla

    2026年3月19日
    2
  • 什么是宽字节注入_百分号两个字节

    什么是宽字节注入_百分号两个字节宽字节注入原理:宽字节(两字节)带来的安全问题主要是吃ASCII字符(一字节)的现象,使用一些特殊字符来”吃掉“经过转义符“\”。在重新详细了解宽字节注入之前,我认为宽字节注入只是出现在网站使用GBK编码的时代,现在已经很少出现了,但是实际上宽字节不只是出现在GBK编码中。在PHP中,通过iconv()进行编码转换时,也可能出现宽字节注入。还有一个误区:这里的编码问题不是出现在HTML页面…

    2022年10月15日
    3
  • git 修改用户名以及邮箱_git配置了用户名还要输入

    git 修改用户名以及邮箱_git配置了用户名还要输入1.查看gitconfiguser.name查看用户名gitconfiguser.email查看邮箱gitconfig–list也可以看到2.修改修改的话gitconfig–globaluser.name“xxx”修改用户名修改邮箱同理

    2025年9月5日
    6

发表回复

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

关注全栈程序员社区公众号