代理

概念

代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等网络设备都具备网络代理的功能。代理服务有利于保障网络终端的隐私或者安全,可以在一定程度上阻止网络攻击(因为通过代理,可以隐藏真正的服务器端/客户端)。

​ 左边和右边的电脑在通讯时候,需要经过中间的电脑中转,而中间的那部电脑就是代理服务器

代理请求过程

​ 客户端首先根据代理服务器所使用的代理协议,与代理服务器创建连接,接着按照协议请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。

代理协议(网络传输协议)

主要是两种:

 SocksHTTP

正向代理

正向代理流程

​ 正向代理时,由客户端发送对某一个目标服务器的请求,代理服务器在中间将请求转发给该目标服务器,目标服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

​ 使用正向代理时,客户端是需要配置代理服务的地址、端口、账号密码(如有)等才可使用的。

​ 通过上图可以看到,客户端并没有直接与服务器相连。正向代理隐藏了真实的客户端地址。可以很好地保护客户端的安全性

适用场景

  • 访问被禁止的资源(让客户端访问原本不能访问的服务器。可能是由于路由的原因,或者策略配置的原因,客户端不能直接访问某些服务器。为了访问这些服务器,可通过代理服务器来访问)

  • 突破网络审查

  • 再比如客户端IP被服务器封禁,可以绕过IP封禁

  • 也可以突破网站的区域限制

  • 隐藏客户端的地址(对于被请求的服务器而言,代理服务器代表了客户端,所以在服务器或者网络拓扑上,看不到原始客户端)

  • 进行客户访问控制

  • 可以集中部署策略,控制客户端的访问行为(访问认证等)

  • 记录用户访问记录(上网行为管理)

  • 内部资源的控制(公司、教育网等)

  • 加速访问资源

  • 使用缓冲特性减少网络使用率(代理服务器设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。)

  • 过滤内容(可以通过代理服务器统一过滤一些危险的指令/统一加密一些内容、防御代理服务器两端的一些攻击性行为)

反向代理

反向代理流程

​ 服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知代理服务器的IP地址,而不知道在代理服务器后面的服务器集群的存在。

​ 由客户端发起对代理服务器的请求,代理服务器在中间将请求转发给某一个服务器,服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

适用场景

  • 负载均衡

  • 如果服务器集群中有负荷较高者,反向代理通过URL重写,根据连线请求从负荷较低者获取与所需相同的资源或备援。可以有效降低服务器压力,增加服务器稳定性

  • 提升服务器安全性

  • 可以对客户端隐藏服务器的IP地址

  • 也可以作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等

  • 加密/SSL加速:将SSL加密工作交由配备了SSL硬件加速器的反向代理来完成提供

  • 缓存服务,加速客户端访问

  • 对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务

  • 数据统一压缩

  • 节约带宽

  • 为网络带宽不好的网络提供服务

  • 统一的访问权限控制

  • 统一的访问控制

  • 突破互联网的封锁

  • 为在私有网络下(如局域网)的服务器集群提供NAT穿透及外网发布服务

  • 上传下载减速控制

正向代理与反向代理

区别

最核心的不同在于代理的对象不同。
正向代理是代理客户端,反向代理是代理服务器。

而根据这核心的区别,我们也可以记住:代理哪端便可以隐藏哪端。 也就是说: 正向代理隐藏真实客户端,反向代理隐藏真实服务端。

为什么叫反向代理

从我们用户的角度来看:代理我们发出请求的客户端被称为正向代理。而代理我们访问的服务器,则被称为反向代理。

从代理结构的角度来看(代理服务器在两种代理中的作用均为收发请求与响应)

  1. 客户端与代理服务器属于一个局域网(看图左边),称为正向代理。

  2. 服务器端与代理服务器属于一个局域网时(看图右边),称为反向代理。

总结

正向代理为客户端服务。
反向代理为服务器端服务。

参考1

代理(正向代理与反向代理)相关推荐

  1. 什么是正向代理?什么是反向代理?

    代理即网络代理,它是介于用户与互联网之间的中介,就像一个附加的安全层,可以帮助隐藏用户信息,一定程度上还能起到阻止网络攻击,保障用户安全的作用.随着互联网的发展,许多业务的顺利开展都离不开代理IP的应 ...

  2. 【网络编程】多个服务器的情况:nginx实现反向代理、nginx基于反向代理实现负载均衡

    如果我们有多个服务器,比如我们只有一个域名:我们可以利用其中一台服务器,通过nginx为这一个域名实现反向代理:进一步,我们可以利用这多台服务器,为这一个域名基于nginx的反向代理实现负载均衡. 文 ...

  3. nginx反向代理打印日志_nginx反向代理笔记

    课前回顾 mysqladmin -uroot password 1#给root用户密码(必须要做) mysql -uroot -p1 create database wp;#创建数据库 create ...

  4. 正向代理和反向代理有什么区别?什么是正向代理?什么是反向代理?正向代理和反向代理详解。

    一.正向代理: 当用户想访问某一网址时,用户先访问代理服务器,然后由代理服务器向目标网址发送请求最终将数据返回代理服务器,最后代理服务器将数据返回给用户这一过程我们称之为正向代理. 正向代理它代理了客 ...

  5. squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

    缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 作为应用层的代理服务器软件,Sqiod主要提 ...

  6. Nginx反向代理——简单体验Nginx反向代理功能

    一.引言 从Nginx入门学习开始.到现在所讲的Nginx反向代理.我们的Nginx学习已经进入白热化状态,前面所学只是铺垫,真正在公司的业务场景中Nginx绝大数用来反向代理+负载均衡所用.相信大家 ...

  7. docker安装nginx规范所有项目的反向代理(一个项目一个反向代理的conf配置文件)

    背景 centos7安装nginx比较麻烦,还是docker安装比较香. dokcer安装nginx比较简单,而且教程很多,那为什么还要总结? 这篇文章主要是规范化nginx对项目的反向代理,明显的特 ...

  8. Nginx代理支持GRPC的反向代理和负载均衡配置

    Nginx代理gRPC反向代理和负载均衡配置 linux版本安装 一.准备和安装 #指定目录安装( /home/yyt/nginxgrpc) mkdir /home/yyt/nginxgrpc cd ...

  9. 轻松理解正向代理与反向代理

    点击蓝色"程序猿DD"关注我哟 我知道有很多专注于业务研发的童鞋,经常搞不清"正向代理"与"反向代理"这两个东西.很多时候,因为这些东西的应 ...

  10. 正向代理反向代理 简(fu)明(za)解释

    最近写的东西越来越偏向Web程序员了··· 你想读懂本篇,就要知道什么是Web服务器--装在世界上某个机房里某台机器里某个操作系统里的一个,对外(公网或者你能访问)服务各种你需要的信息的软件! 它可以 ...

最新文章

  1. mysql 查询表结构 几种方法
  2. [gist]Android SHA-1
  3. 竞争者无数的大数据赛道,这家创业公司靠什么获得众多资本青睐?
  4. Autodesk 360 Mobile不能显示图片?
  5. python打印字符串全排列_Python实现全排列的打印
  6. 2018你那计算机考试新题型,2018考研新题型考察点和解题步骤
  7. OpenGL基础13:第一个正方体
  8. WebService:JAX-WS实现WebService
  9. C++ 长字符串换行
  10. [elixir! #0024] 引擎盖下, `Channel.push` 如何运作
  11. matlab做信号完整性,关于Matlab的Turbo码仿真研究
  12. 【论文笔记】 ICRA 2021 通用无监督激光里程计 Self-supervised Learning of LiDAR Odometry for Robotic Applications
  13. 各种格式视频,图片,音频免费下载
  14. R语言处理时间序列数据
  15. 【动态规划】 EditDistance
  16. 攻防世界backup
  17. 【数据库学习笔记】03 MySQL数据库CURD整理大全
  18. 献给初学者的Java学习方法完整版(附教程)
  19. 职称评审电子信息工程计算机技术总结,电子信息工程专业工程师中级职称申报.docx...
  20. kingscada连接mysql_KingSCADA初级教程 第八章 与数据库连接

热门文章

  1. Dijkstra算法和Floyd算法对比分析
  2. 关于泛微E9 OA系统手机端无法使用的抢救过程
  3. 怎么把视频转换成mp3格式?
  4. HDU 5015——233 Matrix
  5. 机器学习推导合集01-霍夫丁不等式的推导 Hoeffding Inequality
  6. java利用循环打印AVA_ava.util.ArrayList在foreach循环遍历时可以删除元素
  7. 服务器储存要注意什么
  8. 【Pytorch】常见的人脸身份识别损失函数
  9. mysql中的视图作用是什么意思_mysql数据库视图的作用是什么意思
  10. 回路电阻测试仪使用中的常见问题及排除方法