随着互联网技术的普及,由于网络带宽、安全等因素的影响,我们在访问网络或提供网络访问时,通常不会使用真实的服务器或客户端接入公网,而会使用反向代理服务器或正向代理服务器作为公网接入的前置。本文主要介绍代理技术的两种方式,正向代理与反向代理。
目录
一、正向代理
正向代理(forward proxy),面向公网,从公网获取数据。通常用于节省公网带宽、提升响应速度、跨防火墙访问、隐藏客户端、客户端授权访问等需求。
常用正向代理包括以下两种:
开放代理(open proxy),代理服务器位于互联网,客户端需要人工设置浏览器或其他软件指向代理服务器。主要用于提升响应速度、隐藏客户端、跨防火墙访问等需求,在私人访问网络时较常使用。
透明代理(transparent proxy),代理服务器位于内网,客户端无需任何设置即可访问网络。主要用于节省公网带宽、提升响应速度、客户端授权访问等需求,常用于公司内部网络管理。常用软件有squid,apache,nginx等
二、反向代理
反向代理(reverse proxy),代理服务器位于内网,用于提供网络访问。主要目的是为了提高安全性、实现负载均衡、提升响应速度、提供横向扩展。客户端无需任何配置。服务端常用的软件有apache、nginx、haproxy、varnish、squid等。
三、正向与反向代理区别
主要区别有:
一、目的不同,正向代理功能主要是针对客户端,隐藏并保护客户端;反向代理功能主要是针对服务端,避免客户端了解过多服务端细节。
二、正向代理通常和客户端位于内网或防火墙内,而反向代理与服务端位于内网或防火墙内。
三、使用正向代理时,客户端明确知道目标资源位置(知道后端服务器IP地址),代理服务器只是根据客户端请求中的目标资源位置从本地缓存检索结果或到源服务器获取资源;使用反向代理时,客户端不知道目标资源的真正位置,访问的地址为反向代理服务器,反向代理服务器根据预定义的规则(URL、端口、域名)将请求分发到后端服务器。
四、不考虑通过路由器实现透明代理的情况下,正向代理对应用不透明,需要应用特别支持;反向代理对应用透明,应用无需特别设计。
五、反向代理中,代理服务器不会转发客户端证书,如果应用场景需要客户端证书认证,只能使用正向代理。
长按二维码关注
*本所发布内容仅代表作者观点,不代表社区立场