针对nginx,来具体聊聊正向代理与反向代理
Posted nginx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对nginx,来具体聊聊正向代理与反向代理相关的知识,希望对你有一定的参考价值。
先来说说什么是代理服务器?
所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器,正向代理可以隐藏客户端,反向代理可以隐藏原始服务器。
如果你对这句话还不是特别了解,那么接下来我们就详细聊聊正向代理和反向代理的区别。
正向代理
假如你常用的电脑想通过google搜索一个关键词“hello world”,但是国内现在不允许访问google一下,所以你访问不了。
但,假如你现在有一台国外服务器可以访问google,于是出现了这种情况:
于是你想到,我的电脑直接远程控制这台服务器就能google啦,虽然有点麻烦。时间久了你就可能觉得每次远程时间挺累的事情,于是你又想,能不能我的电脑访问这台服务器,然后这台服务器去帮我请求google,然后把请求到的数据返回给我。设想是这样的:
这个过程其实就是正向代理!!
那么问题来了,怎么才能让我的这台服务器接受在我搜索hello world的时候自动帮我去访问google呢?你想到nginx好像有正向代理的功能,于是按照了nginx,并配置相关信息:
来看看小飞机的翻墙代理:
反向代理
回顾一下上篇内容,以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
所以:反向代理与正向代理是相对的。正向代理是替代客户端去发起请求,而反向代理是替代服务器接受客户端的请求。
有如下图例:
这时候这台代理服务器其实不掌握在我们用户手里了,而是google专门用来接受请求,同时还可以作为过滤不正常的请求,防止你们黑的的一个服务器。对我们客户端来说,不掌握在我手里的东西都是别人的,所以这台服务器是反向的,哈哈。
google有了这台代理服务器,我们客户端就接触不到他的真正服务器。google内部可以做微服务,代理服务器可以根据url转发到不同的内部服务器。
nginx的配置上你可以通过指定不同的url前缀跳转到不同的服务器哈~
一句话总结
好了,如果你还不理解。最后我就要放大招了,一句话:假如说正向代理是黑客手里的攻击长矛,反向代理就是google握着的一个盾牌,相互撕杀,谁也不知道是对方是谁!!
借用网友的一张神图作为结尾:
以上是关于针对nginx,来具体聊聊正向代理与反向代理的主要内容,如果未能解决你的问题,请参考以下文章