秋招突击——8/23——知识补充——反向代理和正向代理——负载均衡算法

文章目录

引言

  • 一步一步把以前忘记的计算机网络知识再捡起来,重新整理一遍,这里算是一个新知识,之前并没有深度了解过,仅仅是知道,但是有的时候搞不清楚。
  • 今天好好画个图片整理一下!然后在和着面试题,好好背一下!

信息来源:ByteByteGo

正文

正向代理


定义

  • 作为客户端的代理,去访问互联网上的资源,然后的所代理的具体客户信息对于服务端而言是不可见的。

通信流程

  • 1、用户正常发送请求
  • 2、请求转发至代理服务器
  • 3、代理服务器转发请求到目标服务器
  • 4、目标服务器处理请求并返回响应
  • 5、代理服务器接受响应并转发给用户
  • 6、用户接受响应并处理

应用

  • 保护客户端,隐藏客户端真实的IP地址

  • 科学上网

    • 平常所说的飞机场就是正向代理,我们是通过VPN或者SSH等方式绕过端口限制,然后访问国外的飞机场,然后有飞机场访问外网
  • 阻止访问某些内容

  • 提高访问速度

    • 代理服务器会有较大的硬盘缓冲区,将一些响应结果缓存在服务器端,便于后续使用

反向代理


定义

  • 作为服务器的代理 ,接受客户端的请求,并分发给服务器。同时接受服务器的响应,返回给客户端。
    • 真是服务器对客户端不可见

作用

  • 保护服务器,隐藏服务器真实的IP地址

  • 负载均衡

    • 根据流量和服务器的性能,将请求发送给不同的服务器
  • 缓存静态内容以及部分短时间的大量动态请求。

  • 作为应用层防火墙提供防护。

  • 加密/解密 SSL 通信

负载均衡

作用

  • 将网络流量或者一组任务以一种算法合理分配到各个处理节点
  • 使得节点得到平等的使用
  • 及时可靠地返回结果给用户。

常见应用

  • CDN内容分发网络 ,根据流量的来源,将流量导入相邻地区的服务器,以获得更短的响应时间和更高的可用性。(类似京东的仓储超时)

常见的算法

  • 循环

    • 按照顺序逐个将任务发送给服务端
    • 任务必须是无状态的,任务随机分到每一个服务器,每一个服务器都能执行
  • 粘性循环

    • 相同客户的请求,会发送到一个服务器上(一开始给你,后续我的东西还是你处理
    • 适合客户端操作具有连续性的情况
  • 加权循环

    • 根据权重给每一个服务器分配不同数量的请求
  • 散列

    • 对传入的URL或者IP计算哈希值,然后给对应哈希值访问。
  • 最少链接

    • 发请求发送给处理最少请求的服务器
  • 响应时间最少

    • 将请求发送给响应时间最快的请求!

面试题

1、nginx属于七层网络结构中的哪一层?

  • 应用层

2、Nginx有哪些负载均衡算法

具体算法

  • 1、轮询

    • 按照顺序依次将请求分配给后端服务器,无法特殊处理,有针对性地照顾
  • 2、加权轮询

    • 按照权重分配 请求给后端服务器,权重越高,服务器获得的请求会更多。
      • 适用于后端服务器的性能不同的场景,充分利用高性能的服务器
  • 3、IP哈希

    • 根据客户端的IP地址的哈希值 ,分配请求到特定的服务器
      • 适用于需要保持同一客户端请求使用发送到同一台服务器上,就像session分布式的解决方案,维系通话
  • 4、URL哈希

    • 每一个URL定向访问一个服务器,计算访问的URL的地址值
      • 提高后端缓存服务器的效率
  • 5、最短响应时间

    • 根据后台的平均响应时间来分配 ,响应时间越短的,分配的越多
      • 适用于后端服务器性能不均衡的场景,实现负载均衡
  • 6、最短链接

    • 新请求会发送到并发链接请求最少的服务器上

分类

  • 任务平分类
    • 将任务按照某种标准平分给每一个服务器
      • 轮询
      • 加权轮询
  • 负载均衡类
    • 考虑了服务器的负载,包括CPU的利用率,连接数、IO使用率等衡量
      • 最短连接
  • 性能最优类
    • 任务优先分配给响应时间最快的
      • 响应时间优先的方法
  • Hash类
    • 根据请求中的没写关键信息进行Hash运算,并发送到特定的服务器

3、什么是反向代理?什么是正向代理?

反向代理

  • 代替服务器
    • 接受客户端请求,并将响应返回给客户端
    • 真实服务器对客户端不可见
  • 作用
    • 保护服务器,隐藏服务器的真实IP地址
    • 负载均衡,根据访问的流量情况和服务器的负载情况,将请求发送到服务器上。
    • 充当缓存,缓存静态内容和大部分的瞬时访问的动态内容
    • 加密解密SSL通信

正向代理

  • 代替客户端
    • 代替客户端访问服务端,客户端信息对服务端不可见
  • 作用
    • 科学上网
    • 保护客户端
    • 提高访问速度

总结

  • 目前大概对于反向代理和正向代理,以及对应负载均衡服务都有了一个大概的了解,之前就是通过,但是具体的东西没有全面的整理过!这里主要是为了更好地面试!
相关推荐
东华果汁哥几秒前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
肖永威31 分钟前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
布鲁格若门38 分钟前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student43 分钟前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
dessler1 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
DC_BLOG1 小时前
Linux-Apache静态资源
linux·运维·apache
码农小丘1 小时前
一篇保姆式centos/ubuntu安装docker
运维·docker·容器
带多刺的玫瑰1 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法
爱敲代码的憨仔1 小时前
《线性代数的本质》
线性代数·算法·决策树
耗同学一米八1 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题二
运维·网络·mariadb