什么是正向代理和反向代理

简介: 正向代理是客户端与服务端之间的中介,用于访问受限资源,如V/P/N和动态IP代理,同时可隐藏客户端IP。反向代理则接收客户端请求并转发给后端服务器集群,隐藏真实服务器信息,常用于堡垒机和负载均衡,如nginx。正向代理焦点在客户端,反向代理关注服务端。

一、什么是正向代理
正向代理(Forward Proxy)是一种代理服务器,它位于客户端和服务端之间,代表客户端向其他服务器发送请求。

一般使用的场景就是,当客户端无法直接访问某些资源时,可以通过正向代理来访问。正向代理服务器会将客户端的请求转发给目标服务器,并将响应返回给客户端。正向代理服务器可以缓存请求的响应,从而提高访问速度,并且可以对客户端进行身份验证和授权。

平常我们使用比较多的代理ip或者V/P/N就是这种场景。

二、正向代理的使用的场景
那么正向代理一般用在哪里,以下为常见的几种正向代理场景:

1、V/P/N
代表“虚拟专用网络”,这是一项保护互联网连接和在线隐私的服务。比如我们为了保护公司的隐私安全,设置公司的网络只有通过 VPN 登录后才能进行接入。

2、动态 IP 代理
动态 IP 代理最常用的场景就是网络爬虫,因为大多数网站为了避免被频繁的访问和抓取,会限制访问 IP,如果使用同一个 IP 进行访问,那么很快就会不限制无法访问。因为我们需要 动态 IP 服务器帮我们转发请求,从而避免被目标服务器检测出是在频繁抓取。

3、隐藏客户端 IP
隐藏客户端 IP 就是我们经常电影中看到的,黑客通过代理手段,隐藏自己的真实 IP,避免被其它发现自己的实际 IP,从而查到黑客实际所在地址。

三、什么是反向代理
反向代理是一种代理服务器,在客户端向服务器发送请求时,代理服务器从一组或多组后端服务器中获取资源并返回给客户端,客户端只知道反向代理的IP地址,不知道代理服务器后面的服务器簇的存在。与正向代理相反,反向代理是作为服务器端的代理,而不是作为客户端的代理,用于隐藏真实服务端。

四、反向代理的使用场景
1、堡垒机
堡垒机是一种安全审计系统,它管控着各种想登录服务器的权限或者是操作,能够监督员工们的操作,对员工们的行为起到约束监控作用。通过堡垒机我们可以管控员工对服务器的访问,保护真实服务器的安全。

2、nginx 负载均衡
负载均衡服务器(Load Balancer)是一种用于分配网络请求和流量的设备或软件。它的主要目的是在多个服务器(或计算资源)之间平均分配负载,以确保这些服务器能够高效地共同处理请求,提高系统的性能、可用性和稳定性。比如我们常见的使用 nginx 作为负载均衡服务器。

总结,正向代理和反向代理主要的区别在于代理的对象不一样,正向代理的客户端,对于服务端来说,访问的就是真实的客户端;反向代理代理的是服务端,对客户端来说,访问的就是真实服务服务端。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
存储 SQL 监控
全链路压测:影子库与影子表之争
在生产环境实施全链路压测的过程中,针对上文谈到的两种方案,又面临着数据隔离方案的选择问题,本文首先针对影子库、影子表两种方案进行介绍和对比,然后针对常见的场景,给出方案的选择建议。
7114 126
全链路压测:影子库与影子表之争
|
存储 数据安全/隐私保护
如何在 Vuex 中使用插件进行状态持久化?
如何在 Vuex 中使用插件进行状态持久化?
1119 122
|
网络协议 安全 应用服务中间件
云服务器怎么开启被关闭的端口?手把手教你开启端口
在使用云服务器时,若发现某些服务无法访问,可能是端口被关闭。本文介绍了端口关闭的原因、检查方法及开启步骤。原因包括初始设置限制、防火墙规则和外部网络策略;可通过netstat或ss命令检查端口状态,用ufw、iptables或firewalld调整防火墙规则。最后提供了解决常见问题的建议,确保端口正常开放并可供外网访问。
2781 9
麒麟系统mate-indicators进程占用内存过高问题解决
【10月更文挑战第7天】麒麟系统mate-indicators进程占用内存过高问题解决
2020 2
|
NoSQL Java Redis
Could not get a resource from the pool 异常定位和解决
Could not get a resource from the pool 异常定位和解决
1552 4
|
缓存 负载均衡 网络安全
正向代理和反向代理的区别
正向代理和反向代理的区别
709 1
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
446 0
|
Kubernetes 算法 调度
【K8S系列】深入解析K8S调度
【K8S系列】深入解析K8S调度
2779 0
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
1098 29