【Nginx】Nginx代理模式相关概念解释及Nginx安装

Nginx代理模式

Nginx 是一个高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3代理服务。它可以在多种场景下使用,其中就包括正向代理和反向代理模式。

相关概念

反向代理 (Reverse Proxy)

在反向代理模式中,Nginx 通常位于网络的内部,作为客户端请求到达的第一个接触点。客户端(如Web浏览器)并不直接连接到后端服务器,而是将请求发送到 Nginx。Nginx 然后根据配置规则,将这些请求转发给内部网络中的适当服务器,并将响应返回给客户端。这种设置可以隐藏后端服务器的真实IP地址,提供额外的安全层,并且可以实现负载均衡、缓存等功能。

反向代理的主要用途包括:

  • 负载均衡:分发流量到多个后端服务器。
  • 安全:隐藏真实服务器,保护免受直接攻击。
  • 缓存:减少对后端服务器的请求,加速页面加载。
  • SSL 终止:处理加密和解密,减轻后端服务器负担。

正向代理 (Forward Proxy)

正向代理则是在客户端与外部网络之间的中介。当内部网络中的客户端需要访问外部资源时,它们会通过正向代理服务器发出请求。正向代理服务器可以检查并控制哪些请求被允许或拒绝。此外,它还可以用于缓存外部资源,以提高性能和节省带宽。

正向代理的主要用途包括:

  • 控制访问:限制内部用户对外部网络的访问。
  • 匿名性:隐藏客户端的真实IP地址。
  • 缓存:存储频繁访问的内容副本,减少重复下载。
  • 绕过过滤:在某些情况下,帮助用户访问被封锁的网站。

负载均衡(Load Balancing)

负载均衡是一种计算机网络技术,用于将工作负载分布到多个计算资源(如计算机、服务器、网络链路或其它资源)上。其目的是优化资源使用,最大化吞吐量,最小化响应时间,并确保没有单一资源过载。通过有效地分配任务,负载均衡可以提高系统的可靠性和可用性。负载均衡的工作原理:

负载均衡器位于客户端和服务器之间,作为流量的入口点。当一个请求到达时,负载均衡器根据预定义的算法选择一台后端服务器来处理这个请求。它会持续监控所有连接的服务器的状态,确保流量只被引导至健康的服务器。

常见的负载均衡算法

  1. 轮询 (Round Robin): 每个请求按顺序轮流分配给不同的服务器。
  2. 加权轮询 (Weighted Round Robin): 类似于轮询,但是每个服务器有一个权重值,权重越高的服务器获得更多的请求。
  3. 最少连接 (Least Connections): 将新请求发送给当前活动连接数最少的服务器。
  4. IP哈希 (IP Hash): 根据客户端的IP地址计算出一个哈希值,并始终将该客户端的请求发送到同一台服务器。
  5. URL哈希 (URL Hash): 类似于IP哈希,但基于URL的一部分来决定目标服务器。
  6. 响应时间 (Response Time): 选择响应时间最短的服务器。
  7. 随机选择 (Random Selection): 随机选择一台服务器。

安装与配置

下载 nginx 包后解压到 D 盘 nginx 文件夹下,双击应用程序 nginx.exe 运行(在任务管理器中可结束进程)

D:\nginx\conf 目录下 nginx.conf 文件配置

server {listen       80;server_name  127.0.0.1;location / {proxy_pass   http://testnginx;root   html;index  index.html index.htm;}
}

ip_hash 在 upstream 配置中的定义

upstream servertest {server 192.168.1.146:8080 down;server 192.168.1.146:8081 weight=3;server 192.168.1.146:8082;server 192.168.1.146:8083 backup;ip_hash;
}
  • down:表示当前 server 暂时不参与负载
  • Weight:默认为1,weight 越大,负载的权重就越大。
  • max_fails:允许请求失败的次数默认为1。当超过最大次数时,返回 proxy_next_upstream 模块定义的错误
  • fail_timeout:max_fails 次失败后,暂停的时间。
  • Backup:其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。(压力最轻)

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

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

相关文章

基于AI大模型的医院SOP优化:架构、实践与展望

一、引言 1.1 研究背景与意义 近年来,人工智能(AI)技术取得了迅猛发展,尤其是大模型的出现,为各个领域带来了革命性的变化。在医疗领域,AI 医疗大模型正逐渐崭露头角,展现出巨大的应用潜力。随着医疗数据的海量积累以及计算能力的大幅提升,AI 医疗大模型能够对复杂的…

【论文阅读-思维链的构造方法02】4.1.2 Automatic Construction-01

提示1:本篇博客中涉及4篇相关论文,预计阅读时间10分钟,望各位友友耐心阅读~ 提示2:本篇所有涉及的论文已打包发布,不需要任何积分即可下载,指路 --> 论文集下载地址 大模型技术-思维链CoT …

uniapp——微信小程序,从客户端会话选择文件

微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档: chooseMessageFile 微信小程序读取文件,请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…

Android GameActivity(NativeActivity)读写文件

最近研究native android相关内容,其中最棘手的就是文件读写问题,最主要的是相关的文档很少。这里写下我所知道的方法。 由于本人使用的是Android14[arm64-v8a]版本的设备,能访问的路径相当有限,如果想要访问更多的路径,就不得不申…

YOLO11改进 | 卷积模块 | ECCV2024 小波卷积

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的Conv替…

从0开始的opencv之旅(1)cv::Mat的使用

目录 Mat 存储方法 创建一个指定像素方式的图像。 尽管我们完全可以把cv::Mat当作一个黑盒,但是笔者的建议是仍然要深入理解和学习cv::Mat自身的构造逻辑和存储原理,这样在查找问题,或者是遇到一些奇奇怪怪的图像显示问题的时候能够快速的想…

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…

走方格(蓝桥杯2020年试题H)

【问题描述】在平面上有一些二维点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第1~n行,从左到右依次为第1~m列,每个点可以用行号和列号表示。 现在有个人站在第1行第1列,他要走到第n行第m列,只能向右或者向…

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element:如果你使用的是 Payment Element,它是一个更高级别的组件,能够自动处理多种支…

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计,具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发(右边…

论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract 最近推出的3D高斯飞溅(3DGS),它用多达数百万个原始椭球体来描述场景,可以实时渲染。3DGS迅速声名鹊起。然而,一个关键的悬而未决的问题仍然存在:我们如何将多个3DG融合到一个连贯的模型中?解决这个问题将使…

数据结构(ing)

学习内容 指针 指针的定义: 指针是一种变量,它的值为另一个变量的地址,即内存地址。 指针在内存中也是要占据位置的。 指针类型: 指针的值用来存储内存地址,指针的类型表示该地址所指向的数据类型并告诉编译器如何解…

Synopsys软件基本使用方法

Synopsys软件基本使用方法 1 文件说明2 编译流程3 查看波形4 联合仿真 本文主要介绍Synopsys软件vcs、verdi的基本使用方法,相关文件可从 GitHub下载。 1 文件说明 创建verilog源文件add.v、mult.v、top.vmodule add (input signed [31:0] dina,input signed [3…

软件测试基础详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 “尽早的介入测试,遇到问题的解决成本就越低” 随着软件测试技术的发展,测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷,…

人工智能知识分享第六天-机器学习_​逻辑回归(Logistic Regression)

简介 在机器学习中,分类问题是一种常见的任务,目标是根据输入特征将数据点分配到不同的类别中。为了实现分类,我们需要训练一个分类器,该分类器能够根据输入数据的特征进行预测。 逻辑回归(Logistic Regression&…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在,水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img:目标图像。 src:原始图像。 ddepth:目标图像深度,-1 代表…

Docker- Unable to find image “hello-world“locally

Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…

【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件

步骤 1. 新建一个Actor类,这里命名为“INIActor” 2. 新建一个配置文件“Test.ini” 添加一个自定义配置项 3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable” 方法实现如下,其中第16行代码用于构建配…

互慧-急诊综合管理平台 ServicePage.aspx 任意文件读取漏洞复现

0x01 产品简介 互慧急诊急救快速联动平台,是用于管理门诊急诊病人的系统,主要包括门诊急诊业务和急诊物资管理两部分,其中门诊急诊业务主要包括院前急救、院内抢救、留观监护、绿色通道、预检分诊等;急诊物资管理包括急诊药品管理、急诊设备管理、抢救车管理、急救箱管理、…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 五、 解释评估(Explanation Evaluation) 在前面的章节中,我们介绍了不同的解释技术和它们的用途&#…