nginx负载均衡的几种配置方式介绍
一.负载均衡含义简介
二.nginx负载均衡配置方式
准备三台设备:
2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容
1.一般轮询负载均衡
(1)含义
(2)配置
(3)测试
2.加权轮询负载均衡
(1)含义
(2)配置
(3)测试
(4)其他常用参数
3.ip_hash负载均衡
(1)含义
(2)配置
(3)测试
4.第三方模块负载均衡(以fair为例)
(1)像fair、url_hash等第三方模块都需要添加相应的模块和软件包
(2)配置
下载fair压缩包,解压增加fair模块
修改配置文件
一.负载均衡含义简介
就是为了减轻web、dns等服务器再接收高并发流量请求时的压力,在接受到请求时将负载分摊到其他多个服务器上,提高服务的响应速度和体验感
二.nginx负载均衡配置方式
准备三台设备:
2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容
[root@localhost conf]# curl 192.168.2.160
here 160
[root@localhost conf]# curl 192.168.2.191
here 191
注意:负载均衡的配置一般都放在upstream块内
1.一般轮询负载均衡
(1)含义
一般轮询属于是负载均衡默认配置模式,将请求按照时间先后顺序分配到不同的服务器进行处理,若部分服务器出现宕机,会被自动剔除。
(2)配置
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / {proxy_pass http://remo; #可以理解为代理的站点}}upstream remo { #代理站点内的主机,可加端口,默认80server 192.168.2.191;server 192.168.2.160;} (3)测试
不断刷新会根据时间先后顺序在两台服务器之间交替

2.加权轮询负载均衡
(1)含义
通过weight指定轮询的权重比率(与访问率成正比),应对后端服务器性能不一的情况,性能高的服务器可以设置较高权重,反之则设置较低。这个方式是按照平滑加权轮询算法进行分配,权重值越高被分配到的几率就高。
(2)配置
像这个例子就是它们的总和作为一个循环,4次内出现1次191和3次160,下个4次也是如此
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / {proxy_pass http://remo;}}upstream remo {server 192.168.2.191 weight=1;server 192.168.2.160 weight=3;}
(3)测试
访问4次

(4)其他常用参数
直接接着weight后面写即可
upstream remo {server 192.168.2.191 weight=1;server 192.168.2.160 weight=3;}
max_fails——允许请求失败的次数(默认1),超过最大次数时会返回“proxy_next_upstream”定义的错误
fail_timeout——在max_fails次访问失败后,需要暂停多少时间,两者配合使用
backup——用来标识备份机器,可以有效应对一些意外情况
down——用来标识宕掉的机器
3.ip_hash负载均衡
(1)含义
每个用户发出的请求会按照ip_hash的记过进行分配,分配后的结果即每个访问者固定了的服务器了(可以有效解决动态网页中的连接共享问题)
(2)配置
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / {proxy_pass http://remo;}}upstream remo {ip_hash;server 192.168.2.191;server 192.168.2.160;}
[root@localhost html]# netstat -n | grep 80 |wc -l
30
(3)测试
如图所示就固定给160服务器了,也只有160服务器的访问次数增加了
#160设备上
[root@localhost html]# netstat -n | grep 80 |wc -l
30

4.第三方模块负载均衡(以fair为例)
(1)像fair、url_hash等第三方模块都需要添加相应的模块和软件包
(2)配置
下载fair压缩包,解压增加fair模块
[root@localhostnginx-1.22.0]#./configure --add-module=/usr/local/src/nginx-1.22.0/conf/nginx-upstream-fair-master
[root@localhost nginx-1.22.0]# make
[root@localhost nginx-1.22.0]# make install
修改配置文件
server {listen 192.168.2.190;server_name www.aabb.com;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;location / {proxy_pass http://remo;}}upstream remo {server 192.168.2.191;server 192.168.2.160;fair;}
相关文章:
nginx负载均衡的几种配置方式介绍
一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备: 2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容 1.一般轮询负载均衡 (1)…...
uniapp发布插件显示components/xxx文件没找到,插件格式不正确
uniapp发布插件显示components/xxx文件没找到,插件格式不正确 将插件文件这样一起选中,然后右键压缩成zip文件,而不是外层文件压缩...
Kubernetes(K8s)入门
一、Kubernetes是什么 Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案。这个方案虽然还很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。确切地说,Kubernetes是谷歌严格保密十几年的…...
[前端系列第3弹]JS入门教程:从零开始学习JavaScript
本文将带领大家,从零开始学习JavaScript,fighting~ 目录 一、JavaScript简介 二、变量和数据类型 三、注释和分号 四、算术运算符 五、表达式和语句 六、代码块和作用域 七、函数(最重要) 一、JavaScript简介 JavaScript&…...
html 计算器界面
其他链接: https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ https://codepen.io/pen/tour/welcome/start 下面展示一些 内联代码片。 <!DOCTYPE html> <html lang"en">…...
性能测试工具——LoadRunner(1)
一、LoadRunner三大组件 1.1每个组件是干什么的 VUG:录制脚本(编写脚本) Controller:设计场景,运行场景 Analysis:产生性能测试报告 1.2三大组件之间的关系 二、LoadRunner脚本录制 2.1了解WebTours系统 启动WebTours…...
安科瑞物联网表在虚拟电厂的应用
安科瑞 崔丽洁 应用场景 一般应用于控制中心 功能 能计量当前组合有功电能,正向有功电能,反向有功电能,正向无功电能,反向无功电能; ADW300支持RS485通讯、LORA通讯、NB、4G及Wifi通讯; 三套时段表,一年可以…...
XSS和CSRF
web安全策略和同源策略的意义 如果登陆了一个网站,不小心又打开另一个恶意网站,如果没有安全策略,则他可以对已登录的网站进行任意的dom操作、伪造接口请求等,因此安全策略是必要的; 浏览器的同源策略限制了非同源的域…...
2.物联网LWIP网络
一。创建工程 1.Cubemx创建工程 (1)操作系统的时钟配置 (2)配置ETH 注意:根据底板原理图,不是核心板原理图 (3)配置USART1串口,配置为异步通信 注意:配置结…...
tomcat多实例与动静分离
实验:在一台虚拟机上配置多台tomcat 1.配置 tomcat 环境变量 vim /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh 2.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/…...
K8S下SpringCloud应用无损下线
废话不多说直接上代码,一种2个步骤 步骤一: 添加以下代码到SpringCloud应用中 import cn.hutool.extra.spring.SpringUtil; import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration; import lombok.RequiredArgsConstructor; import lo…...
CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数
一、遗传算法GA 遗传算法(Genetic Algorithm,GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任…...
Linux tar包安装 Prometheus 和 Grafana
0. 介绍 用tar包的方式安装 Prometheus 和 Grafana Prometheus:开源的监控方案Grafana:将Prometheus的数据可视化平台 1. Prometheus 1. 下载 与 解压 官网下载: https://prometheus.io/download/#prometheus上传至机器解压命令:tar -xzf prometheus-*.tar.gz 2. 启动与暂…...
新一代分布式融合存储,数据场景All In One
1、摘要 2023年5月11日,浪潮信息全国巡展广州站正式启航。会上,重磅发布新一代分布式融合存储AS13000G7,其采用极致融合架构设计理念,实现同一套存储满足四种非结构化数据的“All In One”高效融合,数据存力提升300%&a…...
CGroupAndroid实践篇】三、Android CGroup控制组初始化
前面已经提到,android在init阶段,通过init trigger来触发控制组节点的创建,包括foreground,background,top-app,rt,system,dex2opt,system-background,nnapi-hal,camera-daemon,restricted等。 我们来看下android在init.rc中,是如何创建这些控制组节点的,如下:…...
lscpu的各个参数是什么意思?
$ lscpu Architecture: x86_64 #架构 CPU op-mode(s): 32-bit, 64-bit #运行方式 Byte Order: Little Endian #字节顺序 CPU(s): 96 #逻辑cpu数 On-line CPU(s) list: 0-95 #在线cpu Thread(s) per core: 2 #每个核包含线程…...
Linux学习————redis服务
目录 一、redis主从服务 一、redis主从服务概念 二、redis主从服务作用 三、缺点 四、主从复制流程 五、搭建主从服务 配置基础环境 下载epel源,下载redis编辑 二、哨兵模式 一、概念 二、作用 三、缺点 四、结构 五、搭建 修改哨兵配置文件 启动服务…...
【C++手撕系列】——设计日期类实现日期计算器
【C手撕系列】——设计日期类实现日期计算器😎 前言🙌C嘎嘎类中六大护法实现代码:获取每一个月天数的函数源码分享构造函数源码分享拷贝构造函数源码分享析构函数源码分享赋值运算符重载函数源码分享取地址和const取地址运算符重载函数源码分…...
FFmpeg常见命令行(四):FFmpeg流媒体
前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。本文是音视频系…...
ftp访问ubuntu文件系统
ftp访问ubuntu文件系统 安装vsftpd服务器 sudo apt-get install vsftpd启动ftp服务 sudo service vsftpd start编辑vsftdp的配置文件 sudo vim /etc/vsftpd.conf找到write_enable字段并修改, 设定可以进行写操作,保存并退出 write_enable=YES从新启动ftp服务...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
