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

正向代理 vs 反向代理

正向代理 (Forward Proxy)

客户端 → 代理服务器 → 目标服务器

特点:

  • 客户端知道代理:客户端主动使用代理
  • 隐藏客户端:目标服务器不知道真实客户端
  • 常见用途:fq、加速访问

反向代理 (Reverse Proxy)

客户端 → 代理服务器 → 后端服务器

特点:

  • 客户端不知道代理:客户端以为直接访问目标
  • 隐藏后端服务器:客户端不知道真实后端
  • 常见用途:负载均衡、缓存、SSL终止

具体例子对比

正向代理例子:

你的电脑 → VPN服务器 → YouTuBo

  • 你知道:你在使用VPN
  • YouTuBo看到:VPN服务器的IP,不是你的IP
  • 目的:隐藏你的真实IP

反向代理例子:

你的电脑 → Nginx → Spring Boot

  • 你不知道:你以为直接访问Spring Boot
  • 实际:Nginx在中间转发
  • 目的:隐藏Spring Boot,统一入口

你的项目中的反向代理

用户视角:

用户访问:http://你服务器IP/api/meal/save
用户以为:直接访问Spring Boot

实际流程:

1. 用户请求 → Nginx (80端口)
2. Nginx转发 → Spring Boot (8080端口)
3. Spring Boot处理 → 返回给Nginx
4. Nginx返回 → 用户

用户不知道的:

  • Spring Boot运行在8080端口
  • 有Nginx在中间转发
  • 后端服务器被隐藏了

反向代理的作用

1. 隐藏后端服务器

用户看到:http://你服务器ip/api/meal/save
实际访问:http://localhost:8080/meal/save

  • 用户不知道:Spring Boot的真实地址
  • 安全:后端服务器不直接暴露

2. 统一入口

所有请求都通过:http://101.201.254.71
- 前端页面:/
- API请求:/api/
- 静态资源:/assets/

  • 统一管理:所有请求都通过Nginx
  • 简化配置:只需要一个域名

3. 负载均衡

Nginx → 多个Spring Boot实例
- 实例1:localhost:8080
- 实例2:localhost:8081
- 实例3:localhost:8082

  • 分散压力:请求分发到多个服务器
  • 提高性能:避免单点故障

实际配置对比

没有反向代理:

用户直接访问:http://你的服务器Ip:8080/meal/save
问题:
- 暴露后端端口
- 不安全
- 难以管理

有反向代理:

用户访问:http://你的服务器Ip/api/meal/save
Nginx转发:http://localhost:8080/meal/save
优势:
- 隐藏后端端口
- 安全
- 统一管理

你的项目架构

完整架构:

用户浏览器

Nginx (反向代理)

Spring Boot (后端服务)

MariaDB (数据库)

反向代理的好处:

  1. 隐藏Spring Boot:用户不知道8080端口
  1. 统一入口:所有请求都通过80端口
  1. 安全:后端服务器不直接暴露
  1. 扩展性:可以轻松添加更多后端服务

总结

正向代理:

  • 客户端知道代理
  • 隐藏客户端
  • 客户端主动使用

反向代理:

  • 客户端不知道代理
  • 隐藏后端服务器
  • 服务器主动配置
http://www.dtcms.com/a/395360.html

相关文章:

  • SNN论文阅读——spikformer
  • 【论文阅读】Robix:机器人交互、推理与规划的统一模型
  • 【论文阅读】AutoDrive-R^2: 激励自动驾驶VLA模型的推理与自我反思能力
  • [UnrealEngine] 虚幻引擎UE5下载及安装(UE4、UE5)
  • AI原生安全架构的提出与落地路径:来自南凌科技的实践观察
  • ELK企业级日志分析系统
  • EasyDSS一站式点播方案如何提升企业视频门户的用户体验?
  • MARSIM仿真平台部署安装及FUEL部署-Ubuntu20.04
  • 16-留言板案例
  • ubuntu22.04配置ip
  • VMware ubuntu开机后黑屏
  • ubuntu运行项目:音乐解锁-unlock-music-master,安装依赖报错问题
  • vim操作
  • 【AI编程】四大规范驱动开发Spec工具助力AI编程从“即兴创作“向“工程化“转变
  • IDEA中print(“)输出中文乱码
  • 一站式报修软件:破解高校、物业等机构报修难题的高效方案
  • mobaxterm解决无法在vim中复制
  • 深度解析 CUDA-QX 0.4 加速 QEC 与求解器库
  • 深度解析通义DeepResearch:阿里开源的300亿参数深度研究智能体
  • 关于OpenCV无法进行h264视频转码的问题
  • KingbaseES 四维操控:索引、视图、用户与事务的实战密码
  • 大模型强化学习-PPO应用
  • 惠普打印机连接电脑完整指南:方法与故障排除
  • 轻松加载外部Jar,实现SpringBoot功能灵活扩展
  • MCGS COM口MODBUS转发
  • Elasticsearch面试精讲 Day 22:机器学习与异常检测
  • 仓颉语言中的 `Some` 类型解析
  • spring-boot--redis调整token过期时间
  • 树形表格示例
  • 【完整源码+数据集+部署教程】六角螺母分割系统: yolov8-seg-EfficientHead