正向代理server与反向代理server都处于 client 与目标 server 之间,都是将 client 的请求转发给目标 server,再将目标 server 的响应回传给 client,但是二者有一些差异。
代理的是 client,帮助 client 访问自己无法访问的 server 资源。
代理的是 server,帮助 server 实现安全防护,网络加速和负载均衡等功能。
允许 client 通过它访问任何网站,隐藏 client 的详细信息。必须采取安全措施确保为已授权的 client 提供服务。
对外是透明的,client 不知道自己访问的是代理 server,也不知道真实目标 server 的存在,以为处理请求的就是代理 server。
和 client 在同一个网络中。使用者在自己的机器上安装一个代理软件,通过这个代理软件来代理自己的请求。
和目标 server在同一个网络中,一般在 server 上架设。在目标 server 集群中部署一个反向代理 server,用来代理目标 server。
主要用来解决 client 访问限制的问题。
主要用来提供负载均衡、安全访问等功能。
正向代理类似于日常生活中的中介,如房产中介、代理人,只是帮自己去做一些事情,然而这个目标自己是知道的,只是因为一些原因自己无法亲自做。
反向代理相当于自己提出需求只关心结果不关心过程,只要符合自己的想法不管用什么方式来达到都可以。
对于正向代理和反向代理技术人员能接触的生活化的例子
正向代理
访问境外网络
反向代理
一个服务器上部署了多个服务,需要通过统一端口对外提供服务,这就需要对访问的服务做域名映射,例如通过 nginx 实现,这样访问者不知道服务器内部的实现细节,只需通过开放的地址访问对应的服务。这样可以更好保护服务器和内部的服务,代理服务器可以更方便对被访问的服务进行监控。