代理服务器和反向代理服务器之间的区别是什么?


当前回答

如果没有代理

从客户端和服务器端看是相同的:

客户端->服务器

代理

从客户端:

客户端->代理->服务器

从服务器端:

客户端->服务器

反向代理

从客户端:

客户端->服务器

从服务器端:

客户端->代理->服务器

所以我认为,如果它是由客户端用户设置的,它就叫做代理如果它由服务器管理器设置,则它是反向代理。

由于设置它的目的和原因不同,它们以不同的方式处理数据并使用不同的软件。

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server

其他回答

我从Apache的角度理解,代理意味着如果站点x代理站点y,那么请求x返回y。

反向代理意味着对y的响应进行调整,以便所有对y的引用都变为x。

因此,用户无法判断是否涉及代理。。。

代理(转发代理):

当LAN上的计算机连接到访问Internet的代理服务器时。好处包括只将服务器暴露在Internet上。外面的人无法直接访问计算机。转发代理可以通过缓存下载来改善用户的Internet访问。它们还可用于限制对某些网站的访问。此外,只有代理服务器需要公共地址,而不是连接到它的客户端。

反向代理:

反向代理与正向代理相反。相反,它充当连接到的服务器的代理服务器。只有反向代理需要SSL证书,只需要一个公共IP地址,它可以处理传入请求的负载平衡,以增强整体用户体验。

图片来源:使用应用程序请求路由创建转发代理

我发现下图非常有用。它只是显示了通过Internet从客户端到服务器的正向和反向代理设置的架构。此图将帮助您更好地理解qyb2zm302的答案和其他答案。

您还可以观看由Peter Silva制作的F5的DevCentral视频。

图片来源:Quora。然而,根据Martijn Pieters的说法,这张图片可能来自Pulse Secure Community或Julien Pauli的网站(法语)developez.com。

这让我想起了一句经典的谚语:

一张图片值1000个字。

代理服务器将传出的网络请求代理(并可选地缓存)到因特网上各种不一定相关的公共资源。反向代理捕获(并可选地缓存)来自Internet的传入请求,并将其分发到各种内部专用资源,通常用于高可用性目的。

转发代理服务于用户:它帮助用户访问服务器。

反向代理服务于服务器:它保护服务器不受用户影响。