00:00
欢迎大家继续收看上硅谷的Linux云计算视频。大家好,我是汪洋老师。这节课呢,我们继续去构建我们的squid的反向代理模式。那同样呢,我们在构建之前呢,先给大家梳理一下我们当前的网络环境。首先呢,在这里我们需要有这么几台,四台服务器。两台工作在内网的阿帕奇服务,也就意味着我们现在的目标不是访问公网外部服务器了,去给我们的内网用户缓存。而是。给公网用户缓存我们的内网外部服务器里面的数据。加速公网用户的访问。当然其实CDN呢,也是借助的是这个原理。怎么去理解这句话呢?CDN里面有两个比较重要的服务,第一个就是我们的智能DNS。或叫做DNS,其实都一样,对吧,讲师智能其实也比较少。智能DNS。第二呢,就是我们的缓存服务器。
01:00
那缓存服务器的选择类型呢有很多,那SK呢,是我们比较主流的一种方式。那智能DNS呢,也有比较多对吧,比如我们之前学学的半或者是DNS炮的智研的都可以。好,那主要的原理是什么呢?比如我在北京,这是我的总公司的机房,我在上海呢,大一点机房,我在南京大一点机房。然后呢,我通过DNS服务器。智能DNS服务器,也就是说我们之前学习到的DNSV5视图的功能,对吧?可以把同一个用户的请求,按照它的不同的属性把它分到不同的机器上,那比如访问这台上海的。那这台是南京的对吧,这台是北京的。那上海这台服务器呢,其实就是一个缓存服务器,那它里面没有数据对吧,它会把流向指向到我们的。内网的增值服务。内网的真实服务处对吧,那所以呢,返回数据给他,他再返回给我们的客户,那这里是不是就已经保存了对应的缓存文件。
02:03
还记得我们之前所说的二八功能吧,二八原则吧,那这里只要把常见的数据都保持完了以后,那基本上后端服务器的压力是不是就比较小,并且都是在同一个城市节点去访问,你说它的速度快不快,其实这就是CDN的原理。也就意味着squid的反向代理模式其实就可以很好的做到我们的CDN的缓存功能。好,那它是非常重要的,对吧?那接下来我们好好看一下,首先左边依然是我们内网环境,两台阿帕奇当做内网的访问用户,那1112总共是访问用户了,应该是我们的外部服务器,对吧?好,那这台S呢,有两块网卡,一个是跟内网进行相连,一个是我们的与公网相连。这里还会存在一个公网的客户端,那就这么样一个拓扑环境。对于客户端这里呢,如果我这里两个页面长的不是同一,不是同一个文件的话。计算到我们的文件码不一致的话,也就是特征码m Du码都可以,对吧,不一致的话,他会认为这是两个文件,所以会重新去调取,也就意味着在这个客户端里我会一刷新看到诶121212,依然有这种run rub的效果。
03:11
也就轮训的效果。那如果我把两台阿尔法机都停了的话,它会保证到最后一个的缓存返回给客户端。那这是我们能够看到的一个效果。那接下来我们继续往后看。首先我们先去打开这么几台服务器,对吧。1234我都已经还原过了。那我们去连接一下,连接11121314。那这两台是我们的内网的外部服务器,所以呢,我们先去开启一下它的web服务,阿帕奇服务。然后写一个网站,This is so。写到我们的默认的阿帕奇目录下c local house,我们去访问测试一下,没有问题,对吧?好,再到这一台。
04:12
我的。设置我们的开机自启,写一个网站。This is写到我们的下3w HTML indextml。然后localho。没问题。然后在这里我需要把网关指向到幺三,不然的话数据包能进来,以后回不去对吧?所以必须要指网关,那我们去添加网关,Getway等于10.10.10.13。把它写到EDC下的c config network script下的衣config一体H0目录中。
05:00
然后htpd service network restart重启服务。好,那我们说的杠杆去检测一下,去任何地方交给113,这就是我们的网关,对吧?好,这里也一样。依然写到我们的一天绿零的网卡配组文件中。啊,然后重启我们的网络服务。干。没问题对吧?好,这里都指完以后呢,我们在这里依然要安装我们的squ服务,当然我们先把网卡给配置上对吧?E1打开我们的模拟的公网,网卡设置为开机之企,工作方式为static,静态的。IP地址为20.20.20.13net mask等于2552552550保存退出好。
06:09
然后重启网卡。B con,我们看一下。202013对吧,101013没问题,好,那在这里我们去配置一个20202014,当做是我们的访问的客户端公网用户对吧?好,这里地址写成20.20.20.14,然后保存退出。重启我们的网卡,这就会断了,对吧,因为二零网络,二零网络好,我们把它给关了。那这样的话,基础的网络环境就已经准备好了。在这里我需要去安装我们的squ服务,并且我们把它给开启对吧?好,Em,杠外音,Stop squ。
07:13
打开配置文件。往下翻。在这里呢,我们去找到我们的328端口设置选项,好在这里对吧,好我们需要做哪些第一个。指定我们的公网地址冒号端口八零,这里需要注意一下,指定v host的以虚拟主机选项,也就是我们反向代理选项好。这里写的是公网,公网地址可别再写内网地址了,对吧?因为我们现在的访问的客户已经由内网变成公网了,所以要写公网地址端口必须是八零,而不能采用默认的328了,因为原来我们是把网关指向它,所以数据包都会过来,你能抓取到,那现在公网中的用户可不会被你所抓取,也不能被修改,对吧?所以一定写的是八零。
08:05
好,V house代表是我们的反向代理模式。那在下面直接去添加我们的catch p,也就指定我们的真实服务器。或者缓存池对吧,好192168,也就是写的是我们的真实服务器地址。Parent代表的是上游模式,什么叫上游模式啊?我们现在的成绩应该是qui,然后阿帕奇阿帕奇阿帕奇客户对吧?那对于阿帕奇来说,K可不就是它的上层嘛,所以叫上游模式,叫parent。还可以有同级模式好,然后端口是八零。那零代表当前环境中还有没有squ服务器没有了对吧?On serve代表它是它的指节点run柄,我们的调度算法,这里需要注意一下,虽然它指定了调度算法没装的Rubin,但是它没有一些其他的特殊的一些算法,你给别可千万别理解啊,他既然有装Rubin了,是不是还有别的什么?WR啊等等啊,可是没有的,好,我们把它给添加上。
09:04
只是一个固定写法而已,对吧,好10.10.10.1第一台对吧,YYP。那我们再写个幺二,那这两台是不是就已经写完了。那接下来我们保存退出squ start,启动我们的S服务,然后打开我们的。没有转发功能。好保存退出CCTRL-P,我们去刷新,那这样的话我们就可以去访问了,我们过来看一下。那为了看的比较直观的话,我依然打开是我的浏览器,因为如果报错信息的话,会比较容易去识别对吧。
10:07
好,然后我们这里去访问。访问的是应该是20.20.20.13对吧,别访问错了,好这里报错了。这里说的是访问被拒绝。这跟我们之前的报社可不太一样,对吧?访问不到是访问不到,但访问被拒绝是访问被拒绝。还是不太一样的,对吧?访问被拒绝代表什么含义,就是我访问到你了,但你没搭理我。访问不到是我们建立不了网络连接,对吧。那这是因为什么情况呢?我们先把这个问题放在这里。那我们要先讲另一个知识点,也就是我们的最后一个知识点,也就是我们的SL。SL access ctrl list,也就是访问控制列表的意思,对吧?它是我们LINUX4层防御控制其中的一层,在我们的应用空间呢,需要注意一下。
11:00
那讲白了说,就是允许我放行哪些规则。那它的配置方式呢,是有两类,第一个是IC。去指定我们的范围,然后HTPS去允许或拒绝这个定义的范围。范围的定义方式呢?是ICL范围名称。范围的类型。以及范围从哪到哪,也就是范围的内容或叫列列表内容都是一样的,对吧。那列表名称自己可以随便去起,列表类型比较重要,对吧,因为到底是言地址类型啊,目标地址类型啊,还是原端口啊,是目标端口啊,到底支持哪些还是有一定的。设置方式了,对吧,所以我们先看一下有哪些列表类型。第一个src语言地址类型。也就是我可以拒绝原是3.1.2.6的这么一个网站,访问是没有问题的。那DST代表目标。
12:00
比如我当前的web服务器啊,有一个叫做1.circle的文件。默认情况下,别人如果知道这个文件,可以用我们的域名的方式,在杠后面写上我们的绝对路径,可以访问到这个1.q对吧。那听名字也可以,大家听出来这是一个数据库文件。那我不想让别人访问到怎么办?我可以通过DST设置,设置这个一点口不允许被访问。那这样的话,别人通过我的S是代理不到我们的1.sql文件的。那下一个port端口。同理对吧,那如果是3306端口呢,我也不允许你代理,当然也可以自己去设置对吧。DST督脉目标的域。Time访问时间从什么时间到什么时间段不能被访问,它的时间的设置方式呢是?2019杠。零三杠零六是这样一种设置方式。好。简称最大并发连接,比如最大并发到1万了,我就不能再连接了,那我就设置个1万,超过1万以上的都拒绝,记住这里是拒绝。
13:08
好,UR re GS。Reg ex,那从名字也可以听出来,这是一个匹配正常表达式的一个URL路径,对吧?这里需要注意一下。他。和他有什么区别?他写的是一个绝对的,比如是3W点。It硅谷。点。com下的一点。搜文件。他写的是一个ul地址,那什么意思,他写的是3W点。It硅谷。点。com。那也意味着它匹配的是不是相当于是一个。完全匹配。不,它相当于是一个包含匹配,它相当于是一个完全匹配,它只是匹配它的绝对路径。
14:01
必须一模一样,少一个都不行,它匹配的是一个范围类型,你只要开头是这样的,我后面都拒绝。类似于我们的grape和find的区别,还记得吗?那ul PA rgsx。这个也类似于我们的DST对吧。类似于DST,目标地址可以是一个固定的,我们的RCS也是固定的,也就意味着这两个都是固定类型,只不过这是地址类型,只不过这是我们的URL类型。这是一个范围匹配类型,需要大家注意一下。还是很有不同点的,对吧?好,那既然我们知道了这个SCL的配置方式呢,我们还要知道一些其他的概念,就是如果出现SL。但是没有定义HPSS。默认相当于没写。能理解我的意思吗?默认相当于没写,那正确定位SL,再去正确定阅啊HTPS啊内,那就是对应的允许或拒,这个比较好理解,对吧?这是一个最基础的格式。
15:09
那接下来我们再去思考一下,刚才那个问题是怎么出现的。首先我们先打开EDC下的squid下的S。我们到最上层,我们一点人去看。好,那为什么我们之前内网当用户去访问的时候,访问公网能够正常访问,为什么我现在公网访问进来会不行了呢?原因是在这里,我们看这里。USL。定义范围对吧。名称为looknight。类型为src原地的类型对吧?10.0.0.0杠八,你会发现这个地址是不是刚好匹配容纳到了我们的10.10.10.0这个网段。那再往下看。P set are now。
16:01
Local house,也就是放行了我们刚才定义的local house的这么一个IL范围。所以凑巧的是,我们幺零在这里,所以幺零被放行了。那如果我现在想要我们现在的这个外部服务能够正正常被访问,我们应该怎么办?没错,把二零网段加到我们的放行列表里。我们把这行复制一下YYP。我们把幺零改成2020.20.20.0-24。保存退出,那因为修改了配置文件,所以我们需要去重启一下,我们这里就直接reload去加载。这里告诉我,请输入我们的vis name对吧?那我们就输一下吧,其实你不输也没什么问题,告诉他他自己叫什么。类似于阿帕奇的house内。
17:00
不写是不是他会告诉你按钮怎么没给我起名字啊,你给我起一个呗,对吧,但不会出现任何错误,你说我就不起怎么定也不会怎么定,对吧?硅谷点。com好保存退出。然后我再重新去进行我们的re。好,那接下来我们去访问,我们看一下。刷新。1212已经被访问了,对吧,并且如果内网两台服务器我们全部中断的话,我们去看一下。SHTPD。HTP。Stop。好,两个内网服务器都已经中断了,对吧,那他会剩剩的,我们再去访问它应该剩的是谁呢?我我打开了我们的影视模式,对吧,我就不再去重新还原了,这肯定是没有问题的,20.20.20.13。
18:02
啊,原因是什么?刚才我们最后一次访问,访问的是不是就是R,虽然他们的文件名一致,但是文件内容不一样,文件内容不一样文件呢?我们的特征码是不是就不一样,所以他会认为这是两个不同的缓存文件,需要大家注意。它是类似于通过哈希算法去建立索引。所以他会认为这是两个不同的缓存文件。那这样的话,其实我们的反向代理模式就已经构建完成了。那接下来呢,我们其实刚才已经把ICL已经给大家说明白了,对吧,相信大家应该也听懂了,就比较简单对吧,就是SCL确定范围,IPS再去允许或拒绝你的范围。仅此而已。那我现在想给大家演示的是一个SL里面比较古怪的功能。首先,我们先把这两台服务器给还原,还原成我们的正常模式。
19:02
好,还原成正常模式,我现在访问肯定都没问题对吧?好,那现在我们去打开我们的squid的SL配置。在这里我去写一条信息,比如就是这个二零,我们把它拿出来。给他定一个名称。比如我们自己去定义一下ICL。名称,我们叫one night。然后类型是src。地址是20.20.20.0杠二四。没问题对吧?那我在下面只需要怎么写啊?YYP允许谁啊,One night。没问题吧,好,我们保存退出。然后我们再去重新加载一下。这种配置方式大家应该都能看得懂,对吧。
20:00
定义范围,放行这个范围,那我是不是依然可以继续访问?没问题啊,对吧,好,那现在我再去做一件事情。如果我只定义了我们上面的SL,没有定义IPS的话,默认应该是什么?应该是拒绝对吧?我们看一下。默认应该是拒绝我刷新。没路的吧?没有人路的好。拒绝。我们因为我们指定了SL对吧,没有定义这个S到底是放行还是拒绝,所以它默认是拒绝,那现在我们在做一件事情,我把底下的FTPS顶内二给它删了。或者我们直接注射了吧,对吧。好,我们再爆神退出,我们再追漏的。你会发现没有任何变化,对吧?你说你到底要在干什么,搞得花里胡哨的。
21:05
那我要干什么?等会我们就可以看到了,那我再打开我们的SCL。我们把这个local along along local host,我们把它改为迪内local host,我们保存,对说我们再去重新加载。好,我们再刷新能访问吗?我相信你看到这里应该也懵了吧?我第一次看到这个效果的话,我也懵了。官方就有这么样说明了,我看到官方的声明报道,我都愣了,我说这是什么操作啊?那我们过来看一下,给大家解释一下。首先我们能确定的是这个内logo host肯定是跟我们刚才设置的。我们的one net区域是无关的。那为什么又关了呢?原因是当迪内奥被关闭以后。我们如果定义了SL,如果定义了SL。这个SL如果并且如果这个SCL没有定义ITPS的话,它会根据最后一条的IPS反向进行操作,也就意味着这个是底内的话,那你定义那就是allow,如果这是allow的话,那你定义那就是底内,我们可以看一下,比如说改成allow。
22:18
保存说我们在绝路的。好,我们刷新又被拒绝了。比较比较有意思是吧,好,我想表达是什么呢?我给大家讲这个实验,并不是让大家说,哎,你们你们都这样去配没有意义。那为什么还要说这种实验呢?如果出现这种情况的话。你可以思考一下,到底是不是犯了这种错误。正常情况下没有人会这样配对吧,但如果你出现这种情况下,可以考虑一下到底是不是由于这个原因造成的。那这个呢,就是我们的ICL,这也是我们这节课的内容。
23:01
这个呢,给大家讲了两个知识点,第一个就是我们的SK的返航代理模式。需要了解它的功能是什么。它主要。主要是给我们的公网用户缓存我们的页面数据。还需要注意一下,这里的死窥依然没有我们的后端健康状态检测的功能。并且它的算法只有R,需要大家注意一下。也就意味他后后端代理的这个节点应该是高可用的。不管怎样的高可用,它必须是高可用的,对吧,因为它没有健康状态检测啊。好,这是需要给大家注意的点,确定的点,那还有就是这节课又讲了我们的SCL访问控制。主要的定义方案就是ICL,指定列表名称,指定内容列表类型,指定列表内容,也就是一个范围。定义好范围以后,我们对这个范围进行拒绝或允许即可。当然这个范围的类型有这些个,大家可以根据你的需求去确定。
24:02
那这呢,就是我们的SK这节课我们要讲的内容。下节课再见。
我来说两句