00:00
那同学们呢,我们先给大家介绍一下,什么叫反向代理,什么叫网关,什么叫正向代理,现在这张图呢,其实就是一个反向代理的呃流程图我们的,呃,用户在访问我们的系统的时候呢,通过互联网,然后打到我们机房的这个网关路由上,他会把这个请求呢,转发到具体的我们的一台服务器上,在这个过程当中呢,呃,我们的网关肯定是能把网络请求打到我们的服务器上的啊,不然的话,我们这个服务器就没法联网了,对吧?但这台服务器呢,现在是NG构S服务器,如果他作为反向代理服务器的话,他需要把用户所有其他的请求啊,所所有的请求啊,全部都会转发到我们后端的应用服务器,那比如说我们后端呢,是拿Tom cat,呃,做的这个Java的这种项目的集群,那Tom cat是不会被用户直接访问到的,也就是这两端之间它不通,在NG和我们的应用服务器之间呢,形成呃一段内网,我们的tomca的服务器呢,无法接入外网,由于用户想要直接访问的M。
01:00
的服务器是不行的,他得通过NG把请求转发给tomcat,然后tomcad呢,把相应的结果呢再反馈给NG,在中间呢,由NG过一道手,就像中间商一样,把这个呃数据呢,透过NG在传递给我们的这个最前端的这个用户,这样就叫反向代理,那反向代理怎么叫反向,怎么叫代理呢?代理这个概念大家应该能理解了吧,就是在NG的上帮我们去把这个数据传递一下,代理了用户的请求,呃,我代表你去呃办了一个手续,结果呢,呃还挺成功,数据呢也都给你带回来了,并不是真实的啊。正向的代理是什么样的呢?正向代理就是呃,有很多时候我们在上网的时候,嗯,比如说我们在公司里,尤其一些大型的央企,国企,以前我在国企上班的时候吧,那会儿呃,在上班的时候上网是非常苦恼的一件事,我们的这个网络呢。在办公室里边呢,虽然说能接到这个互联网,但是你访问不到任何的这个网站,你得透过他的这个代理服务器啊,也就是他的这个网关啊,这这也是个代理服务器。
02:12
是我们用户主动的想要去上网。用户啊,主动的想要去上网,透过这个代理服务器才能访问到我们的这个外网。那这个代理服务器呢,呃,我们就称之为叫正向代理服务器,这也是我们以前用的各种的什么so代理服务器啊,HTTP代理服务器啊,包括现在有什么这个呃省电那个sis啊,代理服务器也都是这个道理,我们需要在中间呢加一个这个可以访问外网的服务器,然后呢,这个呃代理服务器呢,和我又是网络互通的,我和外网不能直接互通,是这个概念,这叫正向代理,那么大家看一下这两张图对比起来有什么区别呢?其实没啥区别,只是我们所在的角度不一样,呃,如果是要画圈圈的话,我们这么画。
03:06
来,你看。我把用户和代理服务器划到一个圈,圈里这个外网的是外人啊,这我们两个是一家子,那这样的话,我们去主动的去配置了一个代理服务器去访问外网,那我们称之为叫正向代理,是我们主动去配置的,因为我们想要去访问某些网络的时候呢,我们需要这个代理服务器,所以我把它给呃配置好我就可以上网了,对吧?这正向代理这是主动去配置一个代理服务器,那这个呢就不一样了,他们是一家的,大家可以看。这样。这个NG呢,在这里边起到代理服务器的作用。因为我们现在的这个用户,呃,包括我们呃机房内的网关都和我们这个tomca不互通,他想要去连我们这tomca连不上,那你必须得经过我这个代理服务器,我们的NG代理服务器,你才能够访问我们这个Tom cat,那如果要这么看的话,NG呢,就起到了这个代理服务器的作用,他们两个是一样的。
04:11
一样的功能,只是你在访问网络的时候访问不到,我在中间呢,给你起一个中继传递数据的作用啊,那么这样的话,由于这个NG是有我们的服务提供方,呃提供给大家的,反向提供给你的,你自己呢访问不到对吗?那我给你主动的去提供,提供给你一个访问的这个入口,那这就叫反向代理,就是反着来了,对吧?呃,本来呃你应该主动的去提供的,结果你没有或者是你没办法去提供这种访问的模式,那么反着来提供过来的这个代理服务器,这就叫反向代理,那这样就叫正向代理,本质上啊,在网络拓扑上它是一样的,就是用户代理服务器和我们这个呃需要访问的网络。对吧?啊,然后就看这个代理服务器是谁提供的啊,就可以区分出来正向代理和反向代理服务器了,那么网关呢,指的是什么意思?在我们去访问互联网的时候,假设你拿手机连上了自己家里的路由器,那我就需要去把所有的数据包全部都发送给这个路由器,然后由路由器转发请求给我们的这个,呃,下一个。
05:20
下一跳的这个网络的呃路由或者是呃中介或者是这个网关服务。那这样呢,才能够一跳接一跳的跳到我们的这个目标的呃服务器的这个呃位置,然后呢,目标服务器收到请求之后呢,再一跳一跳的给我们返回来,那我们接触到的第一个呃路由,就是我们家里这个路由器,其实就是我们的网关,那这个网关跟代理服务器有啥区别没有?那听起来好像就没区别对吧,它其实它就是网关。对,同学们猜对了啊,他就是网关。就是访问我们网络的入口,这就称之为网关啊,你绕不过去,就像呃,我们一所学校只有一个大门,当然有的大学可能有四个大门,甚至六个大门,门有很多啊,不管你怎么说,你得从这个大门走进来,网关也可能会有好多个接入到我整个这个互联网的这个这个呃。
06:16
分布式的集群当中,大家可以看这张图,我们的业务集群服务器可能有很多,那么它就有可能会接入不同的网关去访问每一组不同的服务啊,一组又一组的去同时对外提供服务。那也不一定,就只有一个网关可以,呃,被接入进来也可以配置好多个网关,我们只要需要把它分组分好就可以了,那网关和反向代理以及正向代理,其实它就都是一个意思,只是叫法不同,名词上的解释不同。那在这呢,这个网关它还有一个额外的特点,这个特点呢,就是它所有的请求都得转发。都得经过网关,就是我们用户想要去,呃,从某个网站去下载一个东西回来,你是不是得把请求打给我们的路由器,然后这个网站呢。
07:03
是接到路由器的请求,而不是直接接到我们用户的请求啊,那网站呢,把你想要的数据想传递给你的话,他也不是直接传递给我们用户的,他要把返回的数据给你的路由器,你的路由器再把数据给你,呃,你当前的这个上网接入的这个设备。它需要在中间中转我们的数据。这是它的特点。这个特点呢,就造成了他有先天性的这种呃瓶颈啊,那这种瓶颈呢,就会在我们的流量比较大的时候,如果你的这个网关服务,呃,它的这个上线带宽不够不够大的话,或者是不够足的话,就有可能在这儿呢,已经被阻塞住了,比如我这是一个十兆的路由器啊,这个大家好理解吧。你有个十兆的路由器,那你下载呃东西的时候呢,你的网速虽然说有100兆,但是这个路由器只有十兆,那你最大的下载速度是不是就只有十兆啊,你即使是千兆的这个网络,你的路由器只有十兆。
08:10
你的下载速度也会卡在这儿,尤其是请求越多,它会越卡。啊,在多个这个请求同时打向外网的时候,它会竞争着我们的路由器里边的一些这个这个这个资源,在越竞争的情况下,它的分配会显得更没有效率,就不如一个这个文件,然后顺顺序的去传递了,那么他这个瓶颈我们应该怎么去有效的去避免呢?其实没有什么办法,只能去提升这个我们代理服务器这个带宽,那反过来看,在我们的这个服务器端也是N几个的网络带宽,其实就是我们整个应用集群的网络带宽,你NG的带宽只有十兆的话,你后边有千兆的网络,它的数据其实也是传不传递不过去的啊,所以呢,在比较高的这种IO操作,IO请求下,我们在这个NG啊做反向代理,其实就有一点不是那么特别的合适了,NG的瓶颈呢,非常明显啊,就是这个这种数据的传输的模型,那这种数据传输的模型呢,我们称之为叫隧道式。
09:11
呃,代理这种隧道式代理就是一进一出必须得走这么一个口啊,你进就得从这进,出也得从这出,那么有没有什么方式可以避免到这种,呃,这这这种这个这个瓶颈呢,其实是有的啊,就是用户请求打到我们的代理服务器上,代理服务器呢,把请求转发给我们的后端服务器大家看。然后我们的这个后端的服务器呢,直接把数据给我们的,呃,这个这个用户在进去的时候呢,请求要过我们这个代理服务器,但是回来的时候呢,就不再走这个代理服务器了,那这会儿呢啊叫D模型,这是LVS所提供的一个功能,LVS呢是一个更高性能的负载均衡器,它的性能要比NG还要高,但是它的功能呢,相对来说要简单的多,它不像NG一样可以基予它,呃,在做更多的这种二次开发,当然开发的时候这种模型和工具呢,也没有这个NG这么多,LVS是专业的负载均衡器,在反向代理的时候呢,既可以做这种隧道式的反向代理,也可以做这种DR模型,这叫DR模型啊,它是请求。
10:19
接入的时候它会通过我们的代理服务器,但是呢,返回的时候呢,就不过这个代理服务器了,比如说我们想要去下载一些文件,请求是不是很小,我想要下载一个500兆的大小的一个,呃,压缩包,这里面包含了我们一些课程,对吧?那你请求可能也就是一个get请求,或者一个POS请求,你这发了盖的请求,那这一个请求也就1K的大小。这1K大小,经过我们的这个代理服务器传递了给我们的这个后端的服务器,一个get请求1K,这传递过去了,消耗的网络呢,网络带宽是不是不是特别大,然后在数据传输回来的时候500兆。
11:01
如果这500兆要是走这个NG格的话,你想想呃,是不是如果要是并发请求的这种下载的,呃,下载请求变多的话,这NG格的网络是不是有点扛不住了,对吧?那么这会可以怎么着,是不是可以由我们这个呃tomcat直接把这个数据包传递给我们这个用户啊,对吧?啊这种模型啊,我们管它叫DRR模型啊,当然这会儿这个tomcad想要传直接传递给我们用户也是不现实的,它需要中间中转到我们的这个机房的网关上啊,他得和这个网关能够这个互相通讯,其实变相来说呢啊,后端这个tomcat啊,只能接收这种。嗯,内部的N的这种入网请求,然后出网请求呢,它要能够和这个我们机房的这个网关能够互联,那么本质上来说呢,它也是可以接入外网的,但是呢,它只能往外传数据,它是接收不了任何请求的,你想连进来是连不进来的,就是给你砍掉了一半,你连不进来,但是我能往外传,它也得接入外网才可以啊,大家要注意这一点,它不是在纯粹的内网环境当中,如果你在纯粹的内网环境当中,你没法连,你没法连接互联网的话,你也没法把这个请求转发给我们这个用户,这DR模型呢,是靠呃虚拟伪装IP来完成的,这个呃逻辑上呢,也不是特别复杂,我们在学习LS的时候呢,再给大家详细讲解,在这给大家带一嘴啊,就是NG个存LVS这两种存在它们之间的区别啊,LVS啊是一个非常简单的软件啊,它直接内嵌在Linux内核里了,就渗托S啊,你甚至都不需要这个额外的装软件就可以直接用这个LVS哈,这是反向代理服务器的概念网。
12:44
观的概念,以及这个正向代理啊,究竟是啥?
我来说两句