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)测试

不断刷新会根据时间先后顺序在两台服务器之间交替

908a8b384f55460c933c1787d2d972fc.png

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次

c9f64945693c4ed9baa0f3234b9a1fa7.png

(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

704416b1a27e468892168504a5b07b8f.png

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;}

       

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.1网络通信基础

一.基础概念: 1)IP地址:描述网络上的一个设备所在的位置. 2)端口号(port):区分一个主机上不同的进程,和pid一样的作用,但两者不同. 3)协议:网络通信传输数据的含义,协议表示一种约定,这种约定可以是任意的.协议分层之后,上层不需要知道下层协议的细节,可以灵活地调整,替换某…

Docker容器监控(Cadvisor +Prometheus+Grafana)

环境部署,接着上一篇文章Docker容器部署(Cadvisor InfluxDBGrafana)开始 目录 1、先清理一下容器 2、部署Cadvisor 3、访问Cadvisor页面 4、部署Prometheus 5、准备配置 6、运行prometheus容器 7、访问prometheus页面 8、部署Grafan…

gin和gorm框架安装

理论上只要这两句命令 go get -u gorm.io/gorm go get -u github.com/gin-gonic/gin然而却出现了问题 貌似是代理问题,加上一条命令 go env -w GOPROXYhttps://goproxy.cn,direct 可以成功安装 安装gorm的数据库驱动程序 go get -u gorm.io/driver/mysql

鸿蒙边缘计算网关正式开售

IDO-IPC3528鸿蒙边缘计算网关基于RK3568研发设计,采用22nm先进工艺制程,四核A55 CPU,主频高达2.0GHz,支持高达8GB高速LPDDR4,1T算力NPU,4K H.265/H264硬解码;视频输出接口HDMI2.0,双…

大专非科班转码成功自白

大专非科班转码成功自白 文章目录 大专非科班转码成功自白初步学习进阶学习提供阶段面试阶段总结 2023年是博主从业18年以来找工作最难的一年。但程序员这个行业还是被很多毕业生青睐。就业相对比较好,收入相对比较高,虽然面临996,依然给很多…

腾讯云服务器购买流程_三种方法图文指南

腾讯云服务器购买流程直接在活动上成本更低,在云服务器CVM或轻量应用服务器页面自定义选择比较gui,但是自定义云服务器CPU内存带宽配置选择范围广,活动上只能选择固定的活动机,选择范围窄,但是云服务器成本低。腾讯云服…

高效处理矢量大数据的高可用解决方案

高效处理矢量大数据的高可用解决方案 解决方案目标 存储海量矢量数据实时分析海量矢量数据实现海量矢量数据的可视化提供高可用、高性能和高可拓展性解决方案概述 海量数据查询与可视化 系统技术流程 方案一 数据存储: PostgreSQL+PostGIS(矢量数据存储和空间分析)数据服务…

PAT 1036 Boys vs Girls

个人学习记录,代码难免不尽人意。 Sample Input 1: 3 Joe M Math990112 89 Mike M CS991301 100 Mary F EE990830 95 Sample Output 1: Mary EE990830 Joe Math990112 6 Sample Input 2: 1 Jean M AA980920 60 Sample Output 2: Absent Jean AA980920 NA #include&…

MFC计算分贝

分贝的一种定义是,表示功率量之比的一种单位,等于功率强度之比的常用对数的10倍; 主要用于度量声音强度,常用dB表示; 其计算,摘录网上一段资料; 声音的分贝值可以通过以下公式计算&#xff1…

NLP 时事和见解【2023】

一、说明 AI的新闻当然不是即时的,但作为趋势和苗头,我们不得不做出自己的决定。比如,一些软件的支持是否持续,哪些现成的软件将不再使用,等等。 图片来自中途 以下是NLPlanet为您选择的有关NLP和AI的每周文章&#x…

Linux命令200例:tree用于以树状结构显示文件和目录

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…

Live800:客服常用的6大提问技巧,帮助客服服务更高效

作为企业最前线的客服,提升服务质量是必须要做到的,而如何提升服务质量呢?其中一项关键点就是提问技巧。在客户沟通中,提问的方式和技巧直接影响着客户对企业服务的满意度。下面,本文将介绍客服常用的6大提问技巧&…

lancet: 【推荐】--源码学习

一个全面、高效、可复用的go语言工具函数库; 可以学习源码的好的地方,这个是个工具库,建议最好的办法是 在项目中导入后,然后查看他的各个源代码进行学习使用 golangd中,查看导入包以及他的源代码; 中文…

C# Winform DataGridView 数据刷新问题

目录 一、问题 二、创建项目 三、绑定空的数据源 四、绑定有数据的数据源 五、修改绑定的数据源 六、解决数据源刷新问题 七、解决刷新数据界面闪烁 一、问题 DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGrid…

DP(区间DP)

目录 石子合并 合并果子(贪心 Huffman树) 环形石子合并 石子合并 设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻…

国产低功耗蓝牙HS6621CxC/6621Px系列支持Find My网络功能方案芯片

目录 什么是“Find My“?HS6621系列简介 什么是“Find My“? “Find My”是苹果公司于19年前推出的针对失物追踪,Find My iPhone(查找我的iPhone)和Find My Friends(查找朋友)的结合体应用。为…

9.2.2Socket(TCP)

一.过程: 1.建立连接(不是握手),虽然内核中的连接有很多,但是在应用程序中,要一个一个处理. 2. 获取任务:使用ServerSocket.accept()方法,作用是把内核中的连接获取到应用程序中,这个过程类似于生产者消费者模型. 3. 使用缓冲的时候,注意全缓冲和行缓冲. 4.注意关闭文件资源…

TCP 三次握手,四次挥手

1、三次握手 第一次握手 SYN 等于1,SeqX 第二次握手 SYN等于1 ACK等于1,SeqY,AckX1 第三次SYN等于0 ACK等于1,SeqX1,AckY1 ackRow都是对应请求seqraw,三次握手后,Seq就是服务器前一个包中的ac…

C++初阶语法——类和对象

前言:C语言中的结构体,在C有着更高位替代者——类。而类的实例化叫做对象。 本篇文章不定期更新扩展后续内容。 目录 一.面向过程和面向对象初步认识二.类1.C中的结构体2.类的定义类的两种定义方式 3.类的访问限定符及封装访问限定符说明 4.类的实例化对…

微信开发之获取收藏夹列表的技术实现

简要描述: 获取收藏夹内容 请求URL: http://域名地址/weChatFavorites/favSync 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数…