首页 > 系统相关 >nginx 负载均衡

nginx 负载均衡

时间:2022-11-24 11:13:02浏览次数:39  
标签:负载 hash weight ip nginx 均衡 服务器

nginx负载均衡的三种方式主要是轮询模式、weight权重模式、ip_hash。

当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。

1、轮询模式(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。

2、weight权重模式
这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大

3、ip_hash
上述weight权重模式方式存在一个问题,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。

标签:负载,hash,weight,ip,nginx,均衡,服务器
From: https://www.cnblogs.com/ruiy/p/16921179.html

相关文章

  • 微服务之Ribbon负载均衡
         一般来说负载均衡默认都是ZoneAvoidanceRule,先对服务器分类再进行轮询查询,即轮流查询      可以通过定义IRule实现可以修改负载均衡规则,有两......
  • Kubenertes Ingress-nginx 部署
    IngressIngress公开从集群外部到集群内服务的HTTP和HTTPS路由。流量路由由Ingress资源上定义的规则控制。Ingress用于实现用域名的方式访问k8s内部应用。管理对集......
  • Nginx 的 SSL 模块安装
    1、查看nginx是否安装http_ssl_module模块nginx-V  如果出现configurearguments:–with-http_ssl_module,则已安装=======未安装则安装https模块===========......
  • FastAPI项目的Nginx配置
    前景:已经使用supervisor把FastAPI开发的后端服务挂载到端口上Nginx的配置如下:upstreamhuiyuan_api{server127.0.0.1:9120;}server{server_namehui.wak......
  • ELK分析Nginx日志和可视化展示
    ELK分析Nginx日志和可视化展示一、概述使用ELK收集nginxaccess日志,利用Grafana做出一套可视化图表 二、环境准备环境说明操作系统:centos7.6docker版本:19.03......
  • Jmeter-使用Ultimate Thread Group插件来设置负载场景
    前言:Jmeter插件相关请移步:https://www.jianshu.com/p/130c7fddeddf自定义线程组:jp@gc-UltimateThreadGroup,功能强大,可以实现多种场景设置,详细介绍见本文。一、添加......
  • 申请免费证书、域名解析以及nginx部署配置https为微信小程序服务
    申请免费证书、域名解析以及nginx部署配置https为微信小程序服务 时间:2022.11.23 作者:飞快的蜗牛  关键字:申请免费证书、域名解析、nginx配置部署https......
  • nginx禁止PDF文件直接打开,而是下载
    在nginx.conf文件中加入下面代码location/{if($request_filename~*^.*?\.(html|doc|pdf|zip|docx)$){add_headerContent-......
  • 使用 Dockerfile 自定义 Nginx 镜像
    一般来说,自定义Nginx只需要把静态文件放到镜像里就可以了,不需要重写CMD与ENTRYPOINT。但是,如果的确需要在Nginx启动前执行一些操作,就需要重写CMD了,如果写成下边就样......
  • nginx允许跨域配置
    配置如下#允许跨域请求的域,*代表所有add_header'Access-Control-Allow-Origin'*;#允许带上cookie请求add_header'Access-Control-Allow-Credentials''true';#允......