正向代理(Forward proxy)
以上图为例,假设 Jerry 作为公司内部局域网的某个 client,他想请求外部 server 的服务,由于某些原因公司不允许公司内部用户直接连接外部网络,想要获取外部网络必须通过某个网关(gateway),该网关既能连接内部 client 又能连接外部网络,因此可将该网关当做“代理 (proxy)”,代理的是 Jerry 这个 Client。对于 server 来说,Jerry 这个 client 是不可见的,它只知道是和 proxy 通信,无法确切知道是和 proxy 后的哪个 client 通信。
反向代理(Reverse proxy)
以上图为例,假设 Jerry 作为外部 client 想访问某个公司提供的某个服务,Jerry 无需知道该服务运行在某个 server 上,因为他只需将请求发送至 proxy,该 proxy 会按一定的方式或策略(如负载均衡)将请求发往特定的内部 server,这时这个网关就是一个反向代理,代理的是 server。对于 client 来说,具体的某个 server 是不可见的(也没必要),它只知道是和反向 proxy 通信,无法确切知道是和反向代理后的哪个 server 通信。