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

正向代理与反向代理理解

问:
应用a请求ng,然后ng根据不同请求路径将请求转发到不同的服务器,对于应用a来说这个ng是正向代理角色还是反向代理呢?

答:
在这个场景中,Nginx 扮演的是反向代理的角色,而不是正向代理。以下是具体分析:


关键点解析

  1. 代理的对象

    • 反向代理:代理的是服务端(隐藏后端服务器),客户端(应用A)直接向 Nginx 发送请求,并不知道后端的具体服务器是谁。
    • 正向代理:代理的是客户端(隐藏客户端),客户端需要主动配置代理,代表客户端去访问外部服务。
  2. 场景描述

    • 应用A直接请求 Nginx(无需配置代理),Nginx 根据请求路径(如 /api 转发到服务器X,/static 转发到服务器Y)。
    • 对应用A来说,它认为 Nginx 就是目标服务器(实际是反向代理在分发请求)。
    • 后端服务器知道请求来自 Nginx(反向代理),但不知道真正的客户端(应用A)是谁。
  3. 是否符合正向代理?

    • 如果应用A需要主动配置 Nginx 作为代理去访问其他服务(例如通过 Nginx 访问 Google),此时 Nginx 是正向代理。
    • 但你的场景中,应用A是直接访问 Nginx,Nginx 再代理到后端,属于反向代理的典型用法。

为什么是反向代理?

  • 客户端(应用A)无感知:应用A无需配置代理,直接请求 Nginx 的地址。
  • 隐藏服务端:后端服务器的真实IP、端口、架构对应用A不可见。
  • 功能匹配:路径转发(路由)、负载均衡、缓存等都是反向代理的核心功能。

正向代理的典型场景对比

如果场景变成:

应用A主动配置 Nginx 作为代理,通过 Nginx 访问互联网上的其他服务(如 curl --proxy http://nginx:8080 https://google.com),此时 Nginx 是正向代理。

但在你的描述中,Nginx 是作为请求的终点(入口),因此属于反向代理。


总结

  • 你的场景:Nginx 根据路径转发请求到不同后端服务器 → 反向代理
  • 正向代理需要客户端显式配置代理服务器,且代理的是客户端的请求(如科学上网)。

可以用一句话区分:
客户端是否知道自己用了代理?

  • 是 → 正向代理(客户端需配置)。
  • 否 → 反向代理(客户端直接访问代理服务器)。
http://www.lryc.cn/news/592974.html

相关文章:

  • 零基础学后端-PHP语言(第一期-PHP环境配置)
  • Libevent(3)之使用教程(2)创建事件
  • Kafka——Java生产者是如何管理TCP连接的?
  • Python day18
  • lvs原理及实战部署
  • HOT100——动态规划篇Leetcode221. 最大正方形
  • 【RK3576】【Android14】调试方法
  • “外卖大战”正在改变国内“大零售”
  • 数组题解——合并两个有序数组【LeetCode】
  • 【RK3576】【Android14】分区划分
  • windows内核研究(驱动开发-0环与3环的通信)
  • GLU 变种:ReGLU 、 GEGLU 、 SwiGLU
  • 商汤将发布日日新6.5大模型及具身智能平台该咋看?
  • Java大厂面试实录:从Spring Boot到AI微服务架构的深度解析
  • 数据查找 二叉查找树
  • 深入解析Linux文件描述符:原理、机制与应用实践
  • 语音大模型速览(三)- cosyvoice2
  • 简单使用MCP
  • 4644电源管理芯片在微波射频组件中的技术优势与国产化实践
  • 比亚迪古德伍德亮相:从技术突破到文化对话
  • JavaSE -- 数组详细讲解(数组介绍,Arrays常用方法,二维数组创建)
  • CMake指令:常见内置命令行工具( CMake -E )
  • MyBatis-Flex代码生成
  • Google Gemini CLI 配置简要指南
  • 数字化转型:概念性名词浅谈(第三十一讲)
  • 前端-CSS盒模型、浮动、定位、布局
  • 张力场中的领航者:驾驭二元对立的“情境智慧”模型
  • Vue3 从 0 到 ∞:Composition API 的底层哲学、渲染管线与生态演进全景
  • C++---cout、cerr、clog
  • 上网行为管理-web认证服务