秋招突击——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通信

正向代理

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

总结

  • 目前大概对于反向代理和正向代理,以及对应负载均衡服务都有了一个大概的了解,之前就是通过,但是具体的东西没有全面的整理过!这里主要是为了更好地面试!
相关推荐
厨 神9 分钟前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku06614 分钟前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
迷迭所归处15 分钟前
C++ —— 关于vector
开发语言·c++·算法
geek_Chen0116 分钟前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
leon6251 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林1 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
(⊙o⊙)~哦1 小时前
linux 解压缩
linux·运维·服务器
Navigator_Z1 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
天玑y2 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯