当前位置: 首页 > article >正文

Nginx系列-正向代理和反向代理

Nginx系列-正向代理和反向代理

文章目录

  • Nginx系列-正向代理和反向代理
    • 1. 三个对象
    • 2. 两种场景代理
      • 2.1. 正向代理
      • 2.2. 反向代理
    • 3. 两种场景的对比
      • 3.1 为什么叫做反向代理
      • 3.2 正向代理和反向代理的作用

1. 三个对象

  • 客户端:发出请求到代理,并接收代理的响应
  • 代理服务器:接收客户端的请求,将其转发到目标服务器并接收到响应后再将响应转发到客户端
  • 目标服务器:接收代理转发的请求,处理后返回结果

2. 两种场景代理

2.1. 正向代理

比如说:我要使用VPN访问公司的网络

  • 我就是客户端
  • VPN就是代理
  • 公司网络就是目标服务器

从这个场景我们可以清晰的了解到:我是清楚我的目标服务器的,换句话就是说客户端知道目标服务器,这就是正向代理

2.2. 反向代理

比如说:你要访问某一个网站,该网站是部署在多台服务器上的应用,并使用了一台nginx做了负载均衡和反向代理,用户只用访问nginx服务器的就可以访问到网站,用户在发出请求之前并不知道目标服务器是哪个,目标服务器被nginx反向代理

  • 浏览器就是客户端
  • nginx就是代理
  • 网站就是目标服务器

从这个场景我们可以清晰的了解到:客户端是是不清楚目标服务器的,这就是反向代理

3. 两种场景的对比

3.1 为什么叫做反向代理

  • 这是因为正向代理是通过代理服务器代表客户端向目标服务器发送请求
  • 而反向代理则是代理服务器代表目标服务器接收来自客户端的请求
  • 正向代理的代理对象是客户端,而反向代理的代理对象是服务器

3.2 正向代理和反向代理的作用

正向代理和反向代理都是网络代理服务器,它们在网络通信中起着不同的作用。

  • 正向代理的作用如下:
  1. 访问控制和过滤:正向代理可以作为一种访问控制的手段,限制对特定资源或者网站的访问。它可以根据规则过滤请求,禁止或允许特定的请求通过。
  2. 提供匿名性:正向代理可以隐藏客户端的真实 IP 地址,使其在请求其他服务器时不会直接暴露真实身份和位置。
  3. 访问限制和监测:正向代理可以控制对外部资源的访问,并且监测和记录客户端的请求和响应流量,用于统计分析和安全审计。
  4. 加速访问和缓存:正向代理可以缓存经常被请求的资源,减少响应时间和网络带宽的使用,提高访问速度。
  • 反向代理的作用如下:
  1. 负载均衡:反向代理可以将客户端的请求分发到多个目标服务器,实现负载均衡,平衡服务器的负载,提高网站的性能和可靠性。
  2. 高可用性和容错性:反向代理可以将请求转发到备份服务器,当一个服务器出现故障时,自动切换到其他可用的服务器,提高系统的可用性和容错性。
  3. 安全性:反向代理可以作为前置网关,过滤和检测恶意请求,防止攻击和滥用请求直接到达真实服务器。
  4. SSL 终端:反向代理可以处理客户端和服务器之间的 SSL/TLS 握手,加密和解密流量,提供安全的通信渠道。

总而言之,正向代理和反向代理在网络通信中起到不同的作用,正向代理主要用于客户端访问控制和匿名性,而反向代理主要用于负载均衡、高可用性、安全性和 SSL 终端等功能。


http://www.kler.cn/a/148760.html

相关文章:

  • 使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本
  • 决策树基本 CART Python手写实现
  • 【Rust 编程语言工具】rustup-init.exe 安装与使用指南
  • goframe开发一个企业网站 统一返回响应码 18
  • 任何使用 Keras 进行迁移学习
  • 基于RK3568J多网口电力可信物联网关解决方案
  • Vue3+java开发组队功能
  • 【hive-design】hive架构详解:描述了hive架构,hive主要组件的作用、hsql在hive执行过程中的底层细节、hive各组件作用
  • Java中关于ArrayList集合的练习题
  • Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持
  • 【泛型】JAVA基础篇(三)
  • 基于矢量控制的永磁同步电机调速系统
  • 带你用uniapp从零开发一个仿小米商场_5. 公共样式编写,
  • Elasticsearch 线上实战问题及解决方案探讨
  • 八股文面试day6
  • 视频号小店怎么运营?具体操作详解!
  • [MySQL--基础]函数、约束
  • 如何编写自己的python包,并在本地进行使用
  • Python中如何用栈实现队列
  • 1、windows10系统下Qt5.12.0与卸载
  • Unity 关于SpriteRenderer 和正交相机缩放
  • Git 本地服务器搭建 Windows
  • Redis常用操作及应用(二)
  • Nacos2.x配置中心源码分析
  • idea社区版免费下载方式
  • leetCode 100. 相同的树 和 leetCode 101. 对称二叉树 和 110. 平衡二叉树 和 199. 二叉树的右视图