先贴一个非常完整的解释
https://www.zhihu.com/question/36412304/answer/2254739842
再说一下自己的理解
其实代理的概念很简单,举个现实生活中的例子:代理就类似于中介。比如租客需要租一个房子,租客需要通过中介来联系到房东,这就算一个代理的过程。也就是说,代理至少需要三方才能完成。
再回到网络代理的概念,这三方可能是三个服务器,也可能只是三个服务。
所谓正向与反向其实都是以 被服务方 的视角来的
当客户端主动使用代理服务,那么就叫做正向代理
例如:使用VPN访问公司内网,这时候公司内网只是接收到了VPN服务的请求,而没有直接收到客户端的请求
当客户端被动使用代理服务,那么就叫做反向代理
例如:使用nginx实现负载均衡,客户端只知道访问了代理服务,并不知道请求最终去到了哪里。
总结: 客户端主动使用代理则是正向代理,客户端被动使用代理则是反向代理。也就是说正向代理和反向代理在一次请求中可以同时存在。例如,客户端使用VPN访问了一个nginx负载均衡的系统。