反向代理何为反向代理

2022-01-14 11:08发布

我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求某些Scientific Internet access工具扮演的就是典型的正向代理角色。于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我。

反向代理

反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,就像拨打10086一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。

反向代理的实现

(1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上

(2)服务器返回自己的服务到负载均衡设备

(3)负载均衡将服务器的服务返回用户

以上的潜台词是:用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时,解析得到的IP其实是负载均衡的IP,而不是服务器的IP,这样有一个好处是,当新加入/移走服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。

正向代理中,proxy和client同属一个LAN,对server透明;反向代理中,proxy和server同属一个LAN,对client透明。

实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。

谈完反向代理服务,再来谈谈终端用户常用的代理服务。

代理

1、用户希望代理服务器帮助自己,和要访问服务器通信,为了实现此目标,需要以下工作:

①、用户IP报文的目的IP = 代理服务器IP,②、用户报文端口号 = 代理服务器监听端口号

③HTTP 消息里的URL要提供服务器的链接

2、代理服务器可以根据c)里的链接与服务器直接通信

3、服务器返回网页

4、代理服务器打包3)中的网页,返回用户。

代理服务器应用场景

如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全loophole,所以在企业网,一般都是采用代理服务器访问互联网。

那有同学会有疑问,那代理服务器就没有安全loophole吗?

相比千千万万的用户主机,代理服务器数量有限,修补安全loophole更方便快捷。