正向代理:注意所有用户使用一个代理和服务器交互 1)用户希望代理服务器帮助自己,和要访问服务器通信,为了实现此目标,需要以下工作: 用户IP报文的目的IP = 代理服务器IPb) 用户报文端口号 = 代理服务器监听端口号c) HTTP 消息里的URL要提供服务器的链接 2)代理服务器可以根据c)里的链接与服务器直接通信 3)服务器返回网页 4)代理服务器打包3)中的网页,返回用户。 反向代理:用户直接和服务器代理交互,但是其实并不是一个服务器 1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上 2)服务器返回自己的服务到负载均衡设备 3)负载均衡将服务器的服务返回用户 以上的潜台词是: 用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时, 解析得到的IP其实是负载均衡的IP,而不是服务器的IP, 这样有一个好处是,当新加入/移走服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。 有些大公司不想让别人知道自己主服务器的位置。 其实就是在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限, 当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面, 可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务, 对于用户来说,根本感觉不到任何差别。 正向代理中,proxy和client同属一个LAN,对server透明; 反向代理中,proxy和server同属一个LAN,对client透明。 实际上proxy在两种代理中做的事都是代为收发请求和响应, 不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。 他具有缓存、安全、负载均衡等作用,反向代理是和服务器集群在一起的,并且知道集群的内部情况。 所谓反向代理基本上就是一个服务端的负载均衡器。 正向代理:代理端代理的是客户端。 反向代理:代理端代理的是服务端。 一个是代理(v)客户端,为客户端收发请求,使真实客户端对服务器不可见。 一个是代理(v)服务器,为服务器收发请求,使真实服务器对客户端不可见。 普通代理,forward proxy,是服务于特定用户(比如说一个公司内 / 一个局域网内的客户)以访问非特定的服务; 反向代理,reverse proxy,是服务于非特定用户(对于公开互联网服务而言,通常是所有用户)以访问特定的服务。 这个图最能说明问题:
自己看总链接:https://www.zhihu.com/question/24723688