Nginx负载均衡策略

upstream机制提供了负载均衡的功能,可以讲请求负载分担到集群服务器的某个服务器上

打包时候到时一个8085 一个8090 一个8095

nohup /usr/local/develop/jdk-17.0.10/bin/java -Xmx256m -Xms256m -jar nginx-demo-8085.jar > server8085.log 2>&1 &

nohup /usr/local/develop/jdk-17.0.10/bin/java -Xmx256m -Xms256m -jar nginx-demo-8090.jar > server8090.log 2>&1 &

nohup /usr/local/develop/jdk-17.0.10/bin/java -Xmx256m -Xms256m -jar nginx-demo-8095.jar > server8095.log 2>&1 &

upstream支持6种负载分配方式,前三种为Nginx原生支持的分配方式,后三种是第三方支持的分配方式

1.Nginx轮询:每个请求按照时间顺序轮流分配到不同的后端服务器

2.Nginx权重:权重是轮询的加强版,在轮询基础上还可以指定轮询的比率,weight和访问到的概率成正比,主要应用与服务型性能不均的情况 比如一个8核32G 一个2核4G等情况

3.Nginx ip_hash:ip_hash每个请求会按照IP的hash值分配,这样IP固定的都会分配到同一台服务器处理,可以解决Session问题,服务器宕机,自动剔除 自动会固定到其他活着的服务

此时,如果说8085宕机了

4.Nginx fair: fair按后端服务器响应时间来分配请求,响应时间短的优先分配

注意 fair 需要nginx_upstream_fair_master github上那个用不了了

链接: https://pan.baidu.com/s/1u06nLaAFzN0CKX9BsyIA8w 提取码: ufjh

--来自百度网盘超级会员v5的分享

5.Nginx url_hash 类似IP_HASH,用url的hash来分配服务器

nginx_upstream_hash这个包过时了 暂时找不到 也许高版本已经 不需要第三方了

将8090杀掉后

6.Nginx least_conn:把请求转发给连接数较少的后端服务器

按现在是随机

估计现在只要引入nginx_upstream_fair_master 来完成 fair就好了 其他可能新版本nginx已经集成

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://web;

}

}

#使用 least_conn

upstream web {

least_conn;#把请求转发连接较少的服务器

server 127.0.0.1:8085;

server 127.0.0.1:8090;

server 127.0.0.1:8095;

}

#使用 URL_Hash

#upstream web {

hash $request_uri;

server 127.0.0.1:8085;

server 127.0.0.1:8090;

server 127.0.0.1:8095;

#}

使用 fair 模块时的 upstream 配置

#upstream web {

server 127.0.0.1:8085;

server 127.0.0.1:8090;

server 127.0.0.1:8095;

fair; # 这个模块需要安装并编译进 Nginx

#}

其他负载均衡策略的示例(注释掉了)

IP_HASH:每个请求会按照IP的hash值分配,这样IP固定的都会分配到同一台服务器处理,可以解决Session问题,服务器宕机,自动剔除 自动会固定到其他活着的服务

upstream web {

ip_hash;

server 127.0.0.1:8085;

server 127.0.0.1:8090;

server 127.0.0.1:8095;

}

权重:权重是轮询的加强版,在轮询基础上还可以指定轮询的比率,weight和访问到的概率成正比

upstream web {

server 127.0.0.1:8085 weight=1;

server 127.0.0.1:8090 weight=3;

server 127.0.0.1:8095 weight=6;

}

轮询:每个请求按照时间顺序轮流分配到不同的后端服务器

upstream web {

server 127.0.0.1:8085;

server 127.0.0.1:8090;

server 127.0.0.1:8095;

}

相关推荐
abigale037 分钟前
webpack+vite前端构建工具 -11实战中的配置技巧
前端·webpack·node.js
专注API从业者26 分钟前
构建淘宝评论监控系统:API 接口开发与实时数据采集教程
大数据·前端·数据库·oracle
Joker`s smile30 分钟前
Chrome安装老版本、不同版本,自制便携版本用于前端调试
前端·chrome
weixin_4166399733 分钟前
爬虫工程师Chrome开发者工具简单介绍
前端·chrome·爬虫
我是如子啊38 分钟前
【解决“此扩展可能损坏”】Edge浏览器(chrome系列通杀))扩展损坏?一招保留数据快速修复
前端·chrome·edge
灵性花火38 分钟前
Qt的前端和后端过于耦合(0/7)
开发语言·前端·qt
孤水寒月5 小时前
基于HTML的悬窗可拖动记事本
前端·css·html
祝余呀5 小时前
html初学者第一天
前端·html
小马爱打代码6 小时前
微服务外联Feign调用:第三方API调用的负载均衡与容灾实战
微服务·架构·负载均衡
耶啵奶膘7 小时前
uniapp+firstUI——上传视频组件fui-upload-video
前端·javascript·uni-app