Nginx集群负载均衡配置完整流程

今天,良哥带你来做一个nginx集群的负载均衡配置的完整流程。

一、准备工作

本次搭建的操作系统环境是win11,linux可配置类同。

1)首先,下载nginx。

下载地址为:http://nginx.org/en/download.html
良哥下载的是:1.24.0 版本
在这里插入图片描述

2)建立工作目录

下载到硬盘后解压三份,目录存放如下:
在这里插入图片描述
其中master为主节点,负责代理分发请求。slave1、slave2负荷提供应用服务(读者可根据需要将其更换为tomcat或java后端服务)。

二、配置集群

1)配置从机

①修改默认主页
为了查看配置效果,我们首先需要将两个nginx从机的默认主页修改一下。
进入slave1的html目录,使用文本编辑器打开index.html
在这里插入图片描述
添加一行内容,如下:
在这里插入图片描述

slave2类同,添加的内容为:

I am server: slave-2

②修改nginx.conf配置文件
进入slave1的conf目录,用记事本打开nginx.conf文件
在这里插入图片描述
将侦听端口改为:8081
在这里插入图片描述

slave2类同,

端口设置为:8082

2)配置主机

进入master主机目录,用记事本打开配置文件
在这里插入图片描述
在http节点中添加配置:

    ## 4.1)七层负载均衡(节点列表配置)upstream backend {##least_conn;server 127.0.0.1:8081;server 127.0.0.1:8082;}

在http的server节点中添加配置:

    ## 4.2)七层负载均衡(代理配置)location / {proxy_pass http://backend;}

在这里插入图片描述

三、验证效果

将三个nginx服务启起来。
打开浏览器,在地址栏输入 http:localhost 回车。
1)浏览器页面显示内容为 I am server: slave-1,说明请求被分发到了slave1的服务端上去了,如下:
在这里插入图片描述
2)刷新页面,浏览器内容显示 I am server: slave-2,说明请求被分发到了slave2的服务端去了,如下:
在这里插入图片描述
重复刷新,页面内容会在上述两个中切换!说明请求已经被轮询分发到不同的后端节点了。

四、扩展知识

1)四层负载均衡配置

四层负载均衡数据包是在底层就进行了分发,而七层负载均衡数据包则在最顶端进行分发。因此,四层负载均衡的效率比七层负载均衡的要高;但是,四层负载均衡不能识别域名只能配置IP+端口模式进行访问,而七层负载均衡配置域名访问的。
具体配置如下:
(注意:stream模块的位置,要在http模块上方,同时proxy_pass的书写方式也有不同。)
在这里插入图片描述

2)nginx的负载均衡策略

负载均衡策略包括三种:轮询(默认策略)、ip_hash(ip哈希策略)、least_conn(最少连接策略);配置在upstream节点中,如下:
在这里插入图片描述

1.轮询(默认)
每个请求按照请求时间顺序分配到不同的后端服务器,如果后端服务器挂了,则自动剔除。
此策略还可以设置:权重,指定轮询的频率,weight和访问率成正比,用于后端服务器性能不均匀的情况。

2.ip_hash
客户端ip地址被用作hash key来判断客户端请求应该发送到哪个服务器,这种方法保证了来自相同客户端的请求总是发送到相同服务器。

3.least_conn
最少连接策略,nginx会尽量不让负载繁忙的应用服务器上负载过多的请求,相反的,会把新的请求发送到比较不繁忙的服务器。

配置示例如下:

http {upstream serverlist{ip_hash;##least_conn;## 屏蔽上述两个参数即采用默认的策略:轮询server www.address1.com weight=3;// 或者ip+端口 , 不需要加入http/https前缀server www.address2.com weight=2;server www.address3.com; // 默认 weight=1}server {listen 80;location / {proxy_pass http://serverlist;}}
}

3)故障下线、备份服务、访问失败等配置

1.down
假如有一台主机是出了故障,或者下线了,要暂时移出,那可以把它标为down,表示请求是会略过这台主机的。

upstream serverlist{server www.address1.com; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com down;
}

2.backup
backup是指备份的机器,相对于备份的机器来说,其他的机器就相当于主要服务器,只要当主要服务器不可用的时候,才会用到备用服务器。

upstream serverlist{server www.address1.com; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com backup;
}

3.max_fails和fail_timeout
默认情况下,max_fails的值为1,表示的是请求失败的次数,请求1次失败就换到下台主机。另外还有一个参数是fail_timeout,表示的是请求失败的超时时间,在设定的时间内没有成功,那作为失败处理。

upstream serverlist{server www.address1.com max_fails=2; // 或者ip+端口 , 不需要加入http/https前缀server www.address2.com backup;
}

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

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

相关文章

vulkan SDK安装

文章目录 一. vulcan官网二.安装流程 一. vulcan官网 https://vulkan.lunarg.com/sdk/home#windows 二.安装流程 点击下载 双击下载的*.exe进行安装 点击下一步 点击下一步 选择安装位置,点击下一步 点击全选,选择下一步 勾选同意&#xf…

2023年中国多功能折叠刀产量、销量及市场规模分析[图]

多功能折叠刀是一种集多种功能于一身的刀具,通常包括切割、开瓶、剥皮、锯木等功能,可以通过折叠和展开的方式来实现不同的功能,具有便携、多用途、安全等特点,广泛应用于户外探险、露营、自驾旅行等场景。 多功能折叠刀行业分类…

grafana v10.1版本设置告警

1. 相关概念概述 如图所示,点击切换菜单标志,可以看到警报相关子选项。 警报规则:通过PromQL语句定义告警规则,即达到怎样的状态触发告警。 联络点: 设置当警报规则实例触发时,如何通知联系人,…

使用Perl和WWW::Mechanize库编写

以下是一个使用Perl和WWW::Mechanize库编写的网络爬虫程序的内容。代码必须使用以下代码:jshk.com.cn/get_proxy 首先,确保已经安装了Perl和WWW::Mechanize库。如果没有,请使用以下命令安装: cpan WWW::Mechanize创建一个新的Pe…

代码随想录二刷 Day 44

01背包问题二维做法先遍历背包或者物品都可以,然后是前序遍历; 一维做法一定先遍历物品然后遍历背包,遍历背包的时候是后序遍历;一维做法还是有点难理解,其实就是后面的数字还是要从前面的推导出来,但是如…

安装Apache2.4

二、安装配置Apache: 中文官网:Apache 中文网 官网 (p2hp.com) 我下的是图中那个版本,最新的64位 下载下后解压缩。如解压到D:\tool\Apache24 PS:特别要注意使用的场景和64位还是32位版本 2、修改Apcahe配置文件 2.1配置Apache…

【音视频流媒体】 3、ffmpeg、ffplay、ffprobe 超详细介绍

文章目录 一、ffmpeg1.1 安装1.2 基本参数 二、ffprobe2.1 查编码格式2.2 查视频时长 五、视频转流5.1 MP4转H2645.2 H264转MP45.3 AVI转MP45.4 MP4转H265 六、视频文件6.1 播放6.2 filter 过滤器6.2.1 crop 6.3 视频截取6.4 视频拼接6.5 获取分辨率 七、视频和图7.1 视频抽帧7…

传输层协议(TCP/UDP协议)

全文目录 端口号端口号范围划分 传输层UDP协议特点基于UDP的应用层协议 TCP协议确认应答机制(可靠性)延迟应答机制超时重传机制流量控制连接管理机制TIME_WAIT 状态CLOSE_WAIT 状态拥塞控制滑动窗口 TCP、UDP对比TCP的listen第二个参数 端口号 在套接字…

jmeter接口测试避坑指南

接口测试看着很简单,但是操作过程中还是出现很多问题,现总结如下: 一、jmeter中乱码问题 可在jmeter.properties 这个文件里面找到sampleresult.default.encodingxx,后面xx改成utf-8,然后取消注释。 解决jmeter的bod…

【RocketMQ系列五】消息示例-顺序消息延迟消息广播消息的实现

1. 前言 上一篇文章我们介绍了简单消息的实现,本文将主要来介绍顺序消息的实现,顺序消息分为局部顺序消息和全局顺序消息。 顺序消息指的是消费者在消费消息时,按照生产者发送消息的顺序进行消费。即先发送的先消费【FIFO】。 顺序消息分为…

vue2升级到vue2.7

vue2升级到vue2.7 小小的改进,大大的提升 只需要简单修改,开发体验得到大大提升. 为什么要升级Vue2.7 不能拒绝的理由: 组合式 API(解决mixins问题:命名冲突,隐式依赖)单文件组件内的 <script setup>语法模板表达式中支持 ESNext 语法(可选链:?.、空值合并:??)单文…

Windows 钉钉多开 dingtalkRC版

亲测可用 下载链接&#xff1a; https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_installer/RC/DingTalk_v6.5.20-RC.7229101.exe

修改echarts的tooltip样式 折线图如何配置阴影并实现渐变色和自适应

图片展示 一、引入echarts 这里不用多解释 vue里使用 import echarts from “echarts”; html页面引用js文件或用script标签引用 二、定义一个具有宽高的dom div <div id"echart-broken" style"width:400px;height: 200px;"></div>三、定义…

Softing为连接PROFIBUS网络提供多种接口产品方案

一 应用广泛的PROFIBUS网络 PROFIBUS是基于统一、标准且独立于应用的通信协议。据PI-China统计&#xff0c;在工业领域里早已有近5090万个PROFIBUS设备被安装在了超过900万节点中。PROFIBUS网络的广泛应用得益于PROFIBUS协议的开放性——用户可以很方便地在PROFIBUS网络的任意…

NXP官方uboot针对ALPHA开发板网络驱动更改说明三

一. 简介 前几篇文章学习了 在 NXP官方uboot上做网络驱动的一部分更改。地址如下&#xff1a; ALPHA开发板网络方案说明-CSDN博客 NXP官方uboot针对ALPHA开发板网络驱动更改说明一-CSDN博客 NXP官方uboot针对ALPHA开发板网络驱动更改说明二-CSDN博客 本文继续来学习在 NXP官…

C#,数值计算——分类与推理Phylagglomnode的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylagglomnode { public int mo { get; set; } public int ldau { get; set; } public int rdau { get; set; } public …

hexo发生错误 Error: Spawn failed

错误描述 仓库中有东西&#xff0c;运行如下命令后报错 hexo d报错提示: 原因分析: 看别人的博客是用git进行push或hexo d的时候改变了一些.deploy_git文件下的内容&#xff0c;这个.deploy_git的内容对于hexo来说可能是系统文件&#xff0c;这里挖坑 解决办法 一个个的…

第一节——vue安装+前端工程化

作者&#xff1a;尤雨溪 官网&#xff1a;简介 | Vue.js 脚手架文档 创建一个项目 | Vue CLI 一、概念&#xff08;了解&#xff09; 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&…

简单谈谈我参加数据分析省赛的感受与体会

数据分析省赛的感受与体会 概要考试前的感受与体会考试注意事项小结 概要 大数据分析省赛指的是在省级范围内举办的大数据分析竞赛活动。该竞赛旨在鼓励和推动大数据分析领域的技术创新和人才培养&#xff0c;促进大数据技术与应用的深度融合&#xff0c;切实解决实际问题。参…