Nginx【Nginx场景实践(代理服务、 反向代理、负载均衡、负载均衡算法)】(八)-全面详解(学习总结---从入门到深化)

news2024/11/15 17:38:01

 

目录

Nginx场景实践_代理服务

 Nginx场景实践_反向代理

Nginx场景实践_负载均衡 

Nginx场景实践_负载均衡算法


 

Nginx场景实践_代理服务

正向代理 

正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。

正向代理最大的特点:

1 客户端非常明确要访问的服务器地址;

2 服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;

3 正向代理模式屏蔽或者隐藏了真实客户端信息。

 

反向代理 

客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时请求的来源 也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色。 反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

 

实时效果反馈

1. 正向代理用途描述错误的是_____。

A 可以做缓存,加速访问资源

B 对客户端访问授权,上网进行认证

C 负载均衡

D 为在防火墙内的局域网客户端提供访问Internet的途径,如 google网站 

 Nginx场景实践_反向代理

单体架构

单体架构问题:

  • 复杂性高:模块多,模块边界模糊,代码质量参差不齐,每次修改代码都心惊胆战
  • 技术债务:随着时间的推移,需求变更和人员迭代,会逐渐形成应用程序的技术债务,并且 越积越多
  • 部署频率低:随着代码增多,构建和部署的时间也会增多,每次部署都要重新部署整个项目 可靠性差:某个应用有bug,可能会导致整个应用崩溃
  • 扩展能力受限:单体应用只能作为一个整体应用进行扩展,无法根据业务模块的需要进行伸缩 

 反向代理设置指令

学习Nginx服务器的反向代理服务,要涉及与后端代理服务器相关 的配置指令比较重要,是为客户端提供正常Web服务的基础,大家 应该熟练掌握尤其是proxy_pass指令,在实际应用过程中需要注意 一些配置细节,需要小心使用。

proxy_pass指令

该指令用来设置被代理服务器的地址,可以是主机名称、IP地址加端口号等形式。

语法结构: 

proxy_pass URL;

参数:

URL为要设置的被代理服务器的地址,包含传输协议、主机名称或P地址加端口号、URI等要素。传输协议通常是"http"或 者"https://"。

示例: 

server{
   ....
   listen 80;
   server_name *.*;
   location / {
     proxy_pass http://192.168.66.101:8080;
   }
}

实时效果反馈

1. 在Nginx技术中实现反向代理核心指令__。

A proxy_pass

B listen

C location

D upstream

2. 下列描述反向代理优点错误的是_____。

A 提高访问速度

B 防火墙作用

C 增加并发

D 处理连接数量不大时,每次连接消耗少量资源

Nginx场景实践_负载均衡 

什么是负载均衡 

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

没有负载均衡的 web 架构 

有负载均衡web架构: 

upstream指令 

upstream块不属于虚拟主机,只能在http块里配置,它定义了在反 向代理时Nginx需要访问的后端服务器集群和负载均衡策略。

语法格式:

upstream back_end {           # upstream需要一个名字
   server 192.168.66.100 max_conns=2 fail_timeout=1s;
   server 192.168.66.101 weight = 1;
   server 192.168.66.102 weight = 1;
}
server{
 lisetn 80;
 server_name *.*;
 location / {
     proxy_set_header Host $host; #转发原始请求的host头部
     proxy_pass http://back_end;   #转发到upstream块定义的服务器集群。
 }
}

upstream参数:

  • max_conns 节点的最大连接数
  • slow_start 缓慢启动时间
  • down 节点下线
  • backup 备用节点
  • max_fails 允许的最大失败数
  • fail_timeout 超过最大失败数后的等待时间

实时效果反馈

1. 负载均衡主要解决____问题。

A 高可用

B 高性能 

C 安全

D 高并发

2. 实现负载均衡机制核心指令是____。

A location

B upstream

C proxy_pass

D cache

Nginx场景实践_负载均衡算法

轮询(默认) 

轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。

适用于后台机器性能一致的情况。 挂掉的机器可以自动从服务列表中剔除。

upstream bakend {    
 server 192.168.0.14;    
 server 192.168.0.15;    
}

 轮询加权重

根据权重来分发请求到不同的机器中,指定轮询几率,weight和访 问比率成正比,用于后端服务器性能不均的情况。

upstream bakend {    
 server 192.168.0.14 weight=10;    
 server 192.168.0.15 weight=10;    
}  

IP_hash

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访 问一台后端服务器,并且可以有效解决动态网页存在的session共享 问题。俗称IP绑定。

 

upstream backServer{
   server 127.0.0.1:8080 ;
   server 127.0.0.1:8081 ;
   ip_hash;
 }

server {
       listen       80;
       server_name www.itmayiedu.com;
       location / {
         ### 指定上游服务器负载均衡服务器
           proxy_pass http://backServer;
           index index.html index.htm;
       }
   }

 url_hash

按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软 件包。

 fair

比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服 务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身 不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。

实时效果反馈

1. Nginx负载均衡默认的算法是______。

A fair

B ip_hash

C url_hash

D 轮询 

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

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

相关文章

[软件基础] ELF executable and linking formate

Chapter 7 Object File Format (Linker and Libraries Guide) https://docs.oracle.com/cd/E19683-01/817-3677/chapter6-46512/index.html

何时开始学习Qt和C++,以及如何有效学习?

学习Qt并使用C编程可以为您开发跨平台的图形用户界面(GUI)应用程序提供良好的基础。下面是一些学习Qt的步骤和建议,以及建议的C知识水平,适合您开始学习Qt: 学习C基础知识:Qt是使用C编写的,因此…

【计算机网络】集线器和交换机的区别

1. 早期–总线型以太网 2. 集线器–星型以太网 3.以太网交换机 4. 集线器和以太网交换机的对比 4.1 单播、多播、同时单播 4.2 扩展以太网的单播 4.3 扩展以太网的多播 4.4 小结

麒麟系统(Liunx)离线安装docker和docker compose

文章目录 一、前言二、准备工作1、查看操作系统版本2、查看操作系统架构 三、安装docker和docker compose1、下载docker离线包2、下载docker compose离线包3、准备 docker.service 系统配置文件4、准备docker的安装脚本文件5、准备docker的卸载脚本文件6、安装 docker 和 docke…

【Axure高保真原型】通过输入框动态控制饼图

今天和大家分享通过输入框动态控制饼图的原型模板,在输入框里维护项目数据,可以自动生成对应的饼图,鼠标移入对应扇形,可以查看对应数据。使用也非常方便,只需要修改输入框里的数据,或者复制粘贴文本&#…

低代码应用开发 高效构建业务系统

低代码是传统软件开发逐步优化和演变的产物,并非全新革命。传统的开发方法过于昂贵和僵化,无法为企业提供所需的高效和敏捷的开发流程,且交付周期长定制能力弱,难以应对不断变化的市场和客户期望,为提高软件开发效率&a…

Python - bool转int,用类型转换还是if-else?

说下结论,虽然直接用int强转的写法比较简洁,但是用if-else的效率更高(规避了函数调用的开销)。 举个栗子: lst [True, False]def a(a100000):starttime.time()for i in xrange(a):lst[0 if random.choice(lst) else …

PCL vtk 计算点云的体积和表面积

一、CC中计算体积和表面积 二、PCL中计算体积和表面积 vtkMassProperties 来计算体积和表面积,但是必须是三角化的模型,不能是多边形的模型 vtkTriangleFilter如果是其他模型的就转换为三角化的模型 // 计算点云的体积和表面积 // 输入的不能是点云&am…

限时等待

如果一个线程要等待的线程的目标没有实现,那么他会一直等下去,此时就陷入了阻塞等待。 还有一种等待状态叫做延时等待,如果如果我去吃饭,但是饭店已经客满,需要排号,当排到我号时,饭店会叫我&am…

持续挖掘助力创新,亚马逊云科技全新开启“创业加速器”第一期招募

就像人从婴儿开始成长,参天大树从嫩芽开始成长一样,所有成功的企业都是从几个人、初创团队起步发展的。例如,当今全球云计算的 Top 巨头亚马逊云科技,就是从亚马逊内部孵化出来的创业团队,亚马逊现任 CEO Andy Jassy&a…

查看windows上的dll内容

1、安装Visual Studio时选择c桌面开发和通用Windows平台开发 2、cmd运行在Visual Studio安装路径下的VC\Auxiliary\Build\vcvars64.bat 3、在这个窗口中运行dumpbin

【从零开始学习JAVA | 第二十七篇】JAVA期末练习(PTA)

目录 前言: R7-5 Count the letters in a string (统计字符串中的字符) R7-1 找素数 R7-3 电话号码同步(Java) 总结: 前言: 临近期末,我也更新一下PTA上的JAVA大题,希望…

TensorFlow项目练手(二)——猫狗熊猫的分类任务

项目介绍 通过猫狗熊猫图片来对图片进行识别,分类出猫狗熊猫的概率,文章会分成两部分,从基础网络模型->利用卷积网络经典模型Vgg。 基础网络模型 基础的网络模型主要是用全连接层来分类,比较经典的方法,也是祖先…

(c语言)给定两个数,求这两个数的最大公约数

目录 方法一 方法二&#xff1a;辗转相除法 方法一 找出两个数中的较小值&#xff0c;从较小值减至两个数%这个数0即可。 //给定两个数&#xff0c;求这两个数的最大公约数 #include <stdio.h>int main() {int a 0;int b 0;scanf("%d %d", &a, &…

【力扣】145、二叉树的后序遍历

145、二叉树的后序遍历 注&#xff1a;二叉树的后序遍历&#xff1a;左右根&#xff1b; // 递归 var postorderTraversal function (root){const arr [];//新建一个数组&#xff1b;const fun (node) >{if(node){fun(node.left);fun(node.right);arr.push(node.val)}}f…

STM32单片机蓝牙APP自动量程万用表电流电压电阻表LCD1602

实践制作DIY- GC0149---蓝牙APP自动量程万用表 基于STM32单片机设计---蓝牙APP自动量程万用表 二、功能介绍&#xff1a; STM32F103C系列最小系统板LCD1602显示器模拟开关信号选择电路电压采集电路电流测量电路&#xff08;康铜丝采样&#xff09;电阻测量电路1个黑色公共端子…

html掉落本地图片效果

实现一个加载本地图片并掉落的html页面。 说明 将DuanWu.html与zongzi_1.png, zongzi_2.png, zongzi_3.png, yadan.png4张图片放在同一个目录下&#xff0c;然后双击打开DuanWu.html即可。 使用Chrome或Microsoft Edge浏览器打开 若使用IE浏览器打开&#xff0c;下方会出现In…

Java框架之springboot starter

写在前面 本文一起看下springboot starter相关的内容。 1&#xff1a;官方提供的starter 在spring-boot-autocongure包中定义了官方提供的一百多个starter&#xff0c;如下&#xff1a; 2&#xff1a;框架是如何定义starter的&#xff1f; 因为springboot的普及度逐步提高&…

Unity Sponza(斯蓬扎宫)场景-BuildIn-URP-HDRP

Sponza&#xff08;斯蓬扎宫&#xff09;场景 &#x1f354;URP &#x1f354;URP 资源下载

Linux: hang: 线程太多,导致的一个例子

今天遇到了一个Linux系统hang住的情况&#xff0c;从vmcore里看bt&#xff0c;没有看到明显的crash、lockup等信息&#xff1b; 而且从vmcore里也不能看具体的当时CPU事情情况。 不过还是怀疑&#xff0c;是因为线程太多&#xff0c;导致资源占用比较严重&#xff0c;从而导致一…