因为工作中有接触到nginx代理服务器部署相关的工作,一开始我是拒绝的,后来也是上网查找各种大佬的解释才渐渐顿悟,下面居来总结一下我个人归纳出来的适合新手理解的说明。
就这张图做一下说明,图1为正向代理,客户端发起一个请求,假设访问某个网址,通常是通过域名访问,这个域名通常也会指向某个IP,显然这时请求先到达的是代理服务器,代理服务器接收到这个请求之后会告诉这朵云(这朵云可以理解成是所谓的信息中心),然后这朵云就开始解析请求,最后根据解析出来的内容指向某个服务器做出响应,这个过程你会发现实际上服务器相对于客户端是不透明的,也就是说客户端是能知道是哪台服务器做出的响应,这个就是正向代理,典型的应用就是“翻墙”。
再来说图2,还是一样的客户端发起请求,这回先到达的是这朵云,开始解析,解析完毕后到达代理服务器,这时候代理服务器就能搞事情了,假设这3个客户端都访问了一个大型网站,一个大型网站一定是有多台服务器在背后撑着的,这时候代理服务器就可以配置转发策略,发现服务器A比较闲,于是就让客户端A去请求服务器A,以此类推,这个过程服务器对客户端是透明的,客户端根本不知道是哪台服务器做出的响应,这个就是反向代理,典型的应用就是在高并发下做负载均衡。
总结:正向代理——你的脚掰了,想吃天下第一馆的饺子,但是你去不了,这就是“墙”,挡在了你和饺子之间,那怎么办呢,对了不是还有女朋友吗?你命令女朋友去天下第一馆买饺子,不然晚上等着瞧(*^▽^*),这个过程女朋友就起到了一个代理的作用,而你也知道天下第一馆的存在,这就是饺子店对你而言是不透明的。
反向代理——你的脚又掰了,又想吃饺子,但是不要天下第一馆的了,于是就叫女朋友随便去一家店买,所以最后买回来的饺子你并不知道是哪家的饺子,这就是饺子店对你而言是透明的。