Nginx实现反向代理负载均衡实验

实验环境:

VM REdhat虚拟机(192.168.87.5)一台、VM Redhat虚拟机(192.168.87.3)一台、阿里云服务器(47.93.79.92)一台

实验要求:通过windows浏览器访问192.168.87.5(虚拟机配置nginx)时,能够访问到192.168.87.3:80虚拟机的web服务和47.93.79.92:80(云服务器)的web服务。

一、首先确保虚拟机nginx服务开启,查看默认index.html文件是否存在

cd /usr/share/nginx/html/

二、修改虚拟机的Nginx配置文件

vim /etc/nginx/nginx.conf

修改配置文件以下几处:

其中upstream 用来配置反向代理的后端服务器,实验中有两个;

weight代表权重,可以自由更改;

max_fails=2表示最多失败两次;

fail_timeout=30s表示失败超时时间30s;

server_name 设置为你要匹配的服务器域名或者ip,当客户端发送请求时,Nginx 将会根据 server_name 来选择合适的 server 块进行处理。你可以设置多个域名,使用空格分隔开;

proxy_pass 用于配置反向代理。它用于将客户端的请求转发(代理)到指定的后端服务器,它将所有的请求代理到名为backend的upstream定义的一组后端服务器。


    upstream backend{
             server 192.168.87.3:80 weight=200 max_fails=2 fail_timeout=30s;
             server 47.93.79.92:80 weight=100 max_fails=2 fail_timeout=30s;
                }

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  192.168.87.5;
        root         /usr/share/nginx/html/;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            proxy_pass http://backend;
        }

        error_page 404 /404.html;
            location = /40x.html {
            }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

保存并退出

三、我们尝试在windows上进行访问http://192.168.87.5

访问到的是云服务器的web服务

更改权重,重启nginx服务,再次刷新页面(或清除缓存刷新)

访问到的是Redhat虚拟机的web服务

至此,配置nginx实现反向代理、负载均衡实验结束

如果我们需要配置轮询方式的负载均衡,只需要更改nginx.conf的如下配置:

    upstream backend{
        server 47.93.79.92:80;
        server 192.168.87.3:80;
          }

页面表现就是每刷新一次,就会跳转到另一台后端。

注意:如果你的电脑资源不够,可以用两台虚拟机或者一台虚拟机和一台云服务器访问,如果你要在两台虚拟机之间实现,请确保开启负载均衡的虚拟机的web服务端口不是80,或者更改你的listen端口,否则会形成回路,导致无论如何也访问不了开启负载均衡的那台虚拟机的web。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hugging Face创始人分享:企业如何在ChatGPT浪潮下实现战略布局

Hugging Face创始人兼首席执行官 Clem Delangue在IBM一年一度的 THINK大会中研讨了当前人工智能发展趋势,特别是ChatGPT模型以及其对行业的影响。他的演讲还涉及到一个关键的议题,在ChatGPT这样的通用模型出现后,企业如何在人工智能领域找到自…

window下如何安装ffmpeg(跨平台多媒体处理工具)

ffmpeg是什么? FFmpeg是一个开源的跨平台多媒体处理工具,可以用于录制、转换和流媒体处理音视频。它包含了几个核心库和工具,可以在命令行下执行各种音视频处理操作,如剪辑、分割、合并、媒体格式转换、编解码、流媒体传输等。FFmpeg支持多…

应急响应-威胁情报

在应急响应中,威胁情报类似一个多维度的知识库,可以对以往相似的恶意元素进行查询。很多时候,结合威胁情报可以从对维度快速地了解攻击者的信息。SANS研究院对威胁情报的定义是,针对安全威胁、威胁者、利用、恶意软件、漏洞和危害…

写在28岁,回看3年前“啃老”的自己,庆幸当时入了软件测试这行

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,薪资嘎嘎涨 为什么会学习软件测试? 已经28岁了,算一下快过去3年了,刚…

图片中的水印怎么去掉?教你三个去水印方法

在拍摄照片时,有时候会遇到不期而遇的路人出现在镜头中,给照片带来不必要的干扰。这时候我们就需要把路人给去掉,让照片变的更加完美。下面我将给大家分享三个把照片中的路人去掉的小妙招。 一、水印云 水印云是一款非常实用的图片处理工具…

CMS网站渗透-Server2206-(解析+环境)

B-5:CMS网站渗透 任务环境说明: 服务器场景:Server2206(关闭链接)服务器场景操作系统:未知 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 2.使用渗透机…

海外云手机三大优势

在全球化潮流下,企业因业务需求对海外手机卡等设备的需求不断攀升,推动了海外云手机业务的蓬勃发展。相较于自行置备手机设备,海外云手机不仅能够降低成本,还具备诸多优势,让我们深入探讨其中的三大黄金优势。 经济实惠…

Armv8-M的TrustZone技术之测试目标指令

为了允许软件确定内存位置的安全属性,使用了TT指令(Test Target)。 Test Target(TT)查询内存位置的安全状态和访问权限。 Test Target Unprivileged(TTT)查询内存位置的安全状态和访问权限,以进行对该位置的非特权访问。 Test Target Alternate Domain(TTA)和Test…

新火种AI|Taylor Swift不雅照被疯传!AI背后的隐患和危机引人深思...

作者:小岩 编辑:彩云 如今本就是一个信息爆炸的年代,再伴随2023年AI技术的井喷式发展,AI正在以迅雷不及掩耳之势渗透到我们生活的方方面面。不过,AI技术是一把双刃剑,我们在享受AI技术带来的便捷和实用的…

算法沉淀——二分查找(leetcode真题剖析)

算法沉淀——二分查找 01.二分查找02.在排序数组中查找元素的第一个和最后一个位置03.搜索插入位置04.x 的平方根05.山脉数组的峰顶索引06.寻找峰值07.寻找旋转排序数组中的最小值08.LCR 173. 点名 二分查找(Binary Search)是一种在有序数组中查找特定元…

SpringBoot项目实现热部署的配置方法

SpringBoot项目实现热部署的配置方法 1、什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。 2、什么是SpringBoot热部署? SpringBoot热部署就是在项目正在运行的时候修改代码, 却不需要重新启动…

SSD详解

1 SSD介绍 Single Shot MultiBox Detector(SSD, 单步多框 目标检测) 2 SSD结构 SSD 基础网络结构使用VGG 全部结构如下: 重用Faster R-CNN的Anchors机制,在feature map上提取各种不同尺度大小的default box,也就是类似Anchor的一系列大小固…

(七)for循环控制

文章目录 用法while的用法for的用法两者之间的联系可以相互等价用for改写while示例for和while的死循环怎么写for循环见怪不怪表达式1省略第一.三个表达式省略(for 改 while)全省略即死循环(上面已介绍) 用法 类比学习while语句 …

蓝牙简学(四)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 HID协议一、摘要二、设备实现1. 大概要写的数据解释2. 代码例子3. 代码例子(c) HID协议 一、摘要 HID(Human Interface Device…

day11_oop

今日内容 零、 复习昨日 一、作业 二、封装 三、继承 四、重写 五、this和super 六、访问修饰符 零、 复习昨日 数组创建的两种方式 new int[3];new int[]{1,2,3,4}; 手写一个遍历输出数组元素的伪代码 构造方法什么作用? 创建对象,将对象的属性初始化 有参无参构造什么区别?…

高价画师的低价服务,会被AI绘画完全取代吗?

花3万块钱买一张画,值吗? 买家花三万块钱买一张网红画师眠狼的画,提前给出了参考图和要求,但最终拿到的作品却货不对板,脸和身体严重割裂,修改一次还要加一千,在互联网上闹得沸沸扬扬。 眠狼是业内著名的画手,又叠加上了网红的buff,参加过多次游戏二创活动,确实有一…

python集合是否可变总结

集合是一个无序的可变的序列。集合中的元素必须是可hash的,即不可变的数据类型。 空集合 aset() 注意a{}创建的是一个空字典。 set —— 可变集合。集合中的元素可以动态的增加或删除。 frozenset —— 不可变集合。集合中的元素不可改变。 注:对于…

C语言第十二弹--扫雷

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 扫雷 1、扫雷游戏分析和设计 1.1、扫雷游戏的功能说明 1.2 游戏的分析和设计 1.2.1、数据结构的分析 1.2.2、文件结构设计 2、扫雷游戏的结构分析 2.1、用…

权威认可 | 全息网御多领域入选《CCSIP 2023中国网络安全行业全景册(第六版)》

2024年1月24日, FreeBuf咨询正式发布《CCSIP(China Cyber Security Industry Panorama)2023中国网络安全行业全景册(第六版)》。FreeBuf咨询全景图/全景册系列,以PDR网络安全模型为基础,并参考I…

springboot mongodb简单教程

(1)依赖 compile(org.springframework.boot:spring-boot-starter-data-mongodb) (2)application.properties配置文件 spring.data.mongodb.host127.0.0.1 spring.data.mongodb.port27017 spring.data.mongodb.databasetest &a…