00:00
哈喽,同学们好,我们呢,刚刚把这个,呃,第三方的这个模块已经给它给装装上了,那么接下来怎么去使用一下它这个使用呢?需要定义两个地儿,一个是在我们这个per pass后边,你要用catch这个地儿啊,首先我们需要先需要去自定一下这个catch key。然后另外呢,就是需要额外的去加一个location以供我们去访问它最终能达到的效果就是和我们这个。达到这个反向的效果。也就是我访问一个页面,Pro呢,能够帮我们去缓存下来,然后另外这个呃,插件呢,我们可以通过访问另外一个页面。把之前缓存这个地址的这个URL啊,给它给清除掉,那这个我先带大家配一下看看效果啊,我们先加一个location。啊,然后在这个location下呢,呃。调用这个pro catch啊purge,然后去清理我们这个,呃,这个之前之前的这个缓存,然后这个后边跟的是这就是。
01:05
我们上面这个批座啊。你指的要清理哪一个这个,呃,这个路径下的缓存,然后后边这个DOLLAR1,这指的是请求的后边的这个uri。然后另外呢,就是。我们的这个key。要重新定义一下它默认的这个catch k啊,是sIgMa pro host,再加上request urii,我们先看一下它默认的这个catch k是啥,如果这个cash k和我们在上面的这个呃,配置如果匹配不上的话,它是清除不了的,它会直接给我们返回404错误。我们先看一下它现在的这个,呃,Catch k长啥样啊?呃,我们现在接下来啊,先把我们那个缓存目录里的东西全都给清了。NX。
02:00
然后RM跟RF型号先都清了,然后呢,我们去访问一下我们这个页面。19244.101,诶,他返回了一个JSP页面对吧,然后看看这缓存命中状态。现在已经hit到了,说明已经重新帮我们生成这个文件了,对吧,然后我们进去看看。我们倒到最开始这个位置。诶,它会记录这个key,现在的这个key是HTTP冒号双斜杠,然后htp get,然后斜杠对吧,这是它完整的这一个key,因为我们后边没加这个任何的路径,如果加了路径的话,他会把后边的uri的地址也给带上,这就是他默认的这个catch key。它默认的这开key就是sIgMa,然后per host,然后再加上request UI sIgMa就是我们访问的协议嘛,HTTP,然后这个是我们这个per SE host,这p host,它把我们这个upstream的名字给读出来了,它其实并不是我们真正访问我们当前主机的这个host,对吧,我们访问的这个主机的host是19216844.101,然后后边有快UI这三个拼一块的。
03:18
那么这是catch key啊,那我们先重新定一下,定义一下这个catch key,让它变得更简单一点。在这儿。这catch key呢,我们现在只。Catch,它的这个以它的这个uri访资源访问的uri为key,那前边的主机和协议我不管,那其实这么做的一个好处就是我不管你访问的是我的HTTP的资源,还是访问的HTPS的资源啊,或者你通过不同的域名访问到我的这个主机,我一这个一概不区分,我需要区分的就是你所访问的这个具体的资源,所以在这儿呢,只加了一个uri。啊,包括这个参数,现在也没有给它这个配置进去。
04:02
然后在上面清理的时候呢。这只有一个一,这就表示呃,你这个呃,Uri去这个清理呃生成K来我们重启一下试试。Car。来重启之后呢,我们再访问一下。这个资源他现在这个key呢,呃,不是他现在的缓存呢,是已经有了,对吧,他现在能够,诶已经他又他又变成Miss了,然后再刷新。啊,已经hit到了,Hit到之后说明缓存文件呢,已经生成出来了。啊,生成出来的两个就多了一个,因为我们这个,呃,这个catch key给他给换了嘛,对吧,然后我们看一下它新生成出来这个。呃,酒吧。你看这个P是啥。
05:02
哎,大家看啊,这个K就只有一个斜杠了,这就是uri啊,Uri后边没跟它,所以它就出来一个斜杠嘛,对吧,然后这个我们清除缓存的话。来访问,我们新加这个location PU斜杠,然后走。因为我们现在后边也啥都没跟,所以他这个key呢,就是一个斜杠啊,然后pass他帮我们找到了,然后把这个文件讲道理啊,他已经给我们删除掉了,我们看看它还在不在。诶,这九后边的这个九下边的7D这个缓存文件已经不在了,那这种方法它比较适合删除单一的一个文件的缓存,比如说我修改了,呃,线上的某一个这个单一的资源,比如说CSS改了,我把这CSS传上去了。然后就想让这个CSS重新的在混沌服务器里边,呃,这个重新的去。
06:03
重新去加载一下,让它立即失效啊,把这个缓存文件删了,那么下次他再访问的时候,那他肯定就会你看Miss掉对不对,然后再访问的时候。才会hit,相当于这缓存的能够让它重新生成一下。然后再有就是,呃,我们这个pro catch key究竟应该定义成什么样子才算是比较合理啊,有这个很多这种方式去定义,根据它的内部的这些我们的这些变量,比如说还可以去拼凑后边所访问的这个参数。你看在官方文档里边呢,嗯。退回去有点有点小慢。什么情况?
07:01
来,在这儿我们看一下。他给了一些这个基础的简单的配置啊,然后在这个呃。开着K,这呢还可以加上这个is argument,然后argument就是判断有没有参数,然后以及参数的值和这个K和Y6。那也就是把这个参数的k value也给它加上,那我们在这试一下啊。你看,嗯,在配置文件里。Pro key,我们现在只有一个URL对吧,我们在后面加上这个,把参数也给它跟上,跟上之后呢,我们在清理的时候,在这也得加上这个。参数对吧,还有另外的一个可以加的,就是这个它访问的主机就是host,我们也可以给它加上。注意顺序,这是host的主机名,然后呃,后边的这个uri,然后这是参数,这是前面这是判断参数的啊。
08:04
然后这样我们再重启,然后重新生成一下这个缓存文件。然后把这个缓存啊,现在这个目录下都给删了。然后来。后边呢,就咱们加上这个uri啊index.jsp。问号ID等于100,哎,那么这就是一个完整的uri,它首次访问的时候肯定是Miss对吧?那看他有没有给我们生成出来。啊,已经生成出来了,然后看咱我们再观察一下,他给我们这个key生成出来的是啥。诶,这个key呢,呃,主host啊,我们刚开始配置的。这个host和它默认的这个,呃,这个这个这个这个值啊,已经不一样了,之前他给我们读出来的是htp guide对吧,我们现在用的是host,然后uri,这是uri。
09:11
然后,然后这是。啊,它是有我们这个,呃,三个元素组成的一个key,之前呢,就这一个是吧,然后在清除的时候呢,同样也是host uri加上这个,呃,咱们的这个。参数。清除的时候呢,也是这个道理,来你看啊,你需要跟这个完整的啊,你带点。JSP,然后ID等于100走,诶successfully啊,它表示已经正确的清除了,那有时候呃,我不期望这个后边跟参数,因为一般跟参数的这个页面啊,它都是动态页面,还有就是嗯,有的时候我们去。为了避免一些这个页面呢,呃,这个这个在客户端的缓存失效,有可能给一些JS或者CSS文件后边加上一个时间戳。
10:07
那么如果它访问到我的NG格上了,它加了时间戳的话,它会认为它每一次的请求都是一个新请求,那它会给我们生成一个新的文件,那本质上它返回的结果有没有什么区别?不信大家可以看啊,我现在的ID等于100。它返回的页面是这个等于101,它也是这个内容是一模一样的,对吧,102也是,但是它会针对于不同的参数,在请求完之后给我们在磁盘上的生成出来。不一样的缓存。啊,这是我们刚刚重新重新请求的量词,对吧,你再来一个300,它又会生成一个,但内容又一毛一样。那所以我们在配置缓存,呃,这个这个这个这个这个pro pass里的缓存的时候啊,我们要想明白我要缓存的内容究竟是啥,如果是动态页面的话,那不同的这个参数,它返回页面是不是一样的,如果是一样的话,那你就没有必要去区分这个。
11:04
呃,这个后边这个arguments如果不一样的话,那么这是不是一个动态请求,如果是动态请求,那访问量如果太大的话,那它会生成海量的这些,呃,这个这个缓存文件,那我们有没有必要这么做?啊,所以一定要根据我们自己的这个实际的需求,然后仔细的去分析,然后再去配置这个缓存啊,然后如果要是呃,我只给静态资源做缓存的话,那我只需要配置到这这个位置就可以了。比如CSSJS。啊那些呃,他怎么访问都一样,如果要是客户端想要让他这个呃缓存立即失效,就是加加他加随随机数了,如果他加随机数的话,呃后边的参数是不重要的,它不会作为后边参数作为这个catch的key。啊,那这样的话,即使的参数不一样,也不会缓存出来多个文件啊,这是基本的配置啊,然后在这个上边的话,呃,这个配置呢,一定要和你这个KP1定要对上,不然他找不着这个key,也就定位不到文件,所以它也就删除不了。
12:07
那这是他对这个单一的一个文件去做这个缓存清理的这个配置啊。呃,那么我们如果要需要去让这个缓存文件批量失效,也就是批量删除的话呢,呃,我们可以去利用一下,呃,它的一些其他的一些特性,在这个官方文档里边呢,有一些说明。呃,除了这个利用他的这个官方文档上的这个方法去清除啊,另外还有就是更多的时候更简单一点,直接写一个脚本啊,写一个shell一下啪一下全删了就可以了啊,或者通过这个远程命令直接把它给删了,这件事儿呢,本质上它没有那么的,呃,这个这个这个复杂啊。啊,它在就是它的这个一系列的配置呢,都在,嗯,这个pro的这个模块下,我找一下。
13:00
啊,这个这个这个模块下。PA。这个HTTP的pro啊在这。这pro catch啊,这里边有它所有的这个,呃,这种在在在这个缓存里边可以配置选项,其中呢,就有呃,它这个prore的这个配置,它依赖的就是。这个第三方的模块,你没有这个第三方模块的话,也是不能用的。搜一下P。这。大家可以看啊,在这里边有很多可以配的东西啊,嗯,在这配的时候啊,嗯。大家看一下这个。它的这个官方的配置,这官方的配置里边呢,嗯,有点不太一样,我们是直接加了一个location,拿HTTP的方法去get它,对吧,那它这个是换了一种请求方式啊,然后在这请求方式里边直接加了一个PU,用这种请求的方式去请求这个location,然后然后你达到这个清除这个效果,就相当于我们不去发这个get请求了,然后发这个pge请求。
14:11
那这种这个PRGE请求怎么发呢?我们可以通过这个curl啊去发,或者是呢,拿这个postman去发,这postman里边呢,就可以去,呃,自定义这个请求方式啊,在这儿我们能找到这个PUGE它默认就存在,这不是他自己瞎搞的一个啊。用这种方式去请求某个URL的时候呢,让它在执行的时候就有一个map map相当于给呃某一个这个变量去赋值啊,如果这个值它变成了这个呃,这个一的话,然后就执行。这个catch,呃,清理啊,执行粉丝清理在这里边还有好多的这个其他的可以配置的,呃,我们再找一下啊。PURGE。好在这儿,这个是在,呃。
15:03
我们的这个pro catch这个位置去配,它在清理的时候怎么去清啊,首先这个开关啊,这是指的是要不要让它直接在这个呃,我们的命令里边直接去清理,我们刚才访问的这种方式和他这种方式是不一样的啊,然后这个是呃,我们在清理这个时候,就是这种批量清理的时候,在执行的时候,这个一次扫描的这个次数,嗯,然后下边这两个呢,就是时间的设置,一个是这个,呃,这这一次这个terration,就是一次迭代的时候,它清理多长时间的的这个这个数据,然后这就是两次清理的这种间隔,用这个也可以啊,但是一般来说我们做了这个。呃,Catch之后一般呢,我们都是直接把这个目录,如果要是如果要是有这个批量批量这个失效的情况下,我们直接就把它全给清掉就可以了啊。啊,这个用的是比较少的,这是嗯,我们这个缓存在这儿呢,一定要注意啊,最后总结一下,就是你一定要注意你的缓存的这个内容是啥啊,如果你。
16:09
明确了,你要把动态内容也要缓存,缓存到这个,呃,我们的这个代理服务器里的话,那么你一定要管理好它的过期时间,你不要让它时间太长,那如果时间太长的话,一下变成300多天,那你后端那个动态服务器,它也就不叫动态服务器了啊,可以适当的加一些这种,比如说某些分页上,我可以在这去自,比如说在这制定一个location,这个location呢,我我规定到什么这个,呃,比如BBS下边的这个配置。然后什么什么number等于。12345,我可以把前边几页给它给呃缓存下来啊,这种列表页上的这种数据呢,可以给它稍微的做一些缓存,比如说缓存它十秒或者20秒啊,每隔十秒20秒呢,才能允许像像我们这个上游服务器去请求一次啊,然后大家能看到的就是十秒左右的这个缓冲缓冲内容,那么这也能够极大的去给咱们的这个服务器减轻压力啊,再有就是比如说后端的服务器呢,都是一些静态的这些。
17:15
呃,Item的展示,那一般来说呢,不会发生太大的变化,那这会儿可以给它设置了稍微的长一点的这种缓存是针对于不同的location去匹配不同的资源路径,匹配我们的不同的业务的啊。那一定要一个一个去自定义这种动态的请求,比如说item,就商品展示,那这会儿呢,我们可以给它设置成,呃,这个五分钟或者十分钟。啊,十分钟到五分钟到十分钟的缓存,那么这会儿在。用户请求的时候,即使我在后台页面里更新了,那他也不能拿到最新的这个数据,那用户其实也是可以接受这种呃,稍微弱一点的一致性这种请求的,而且对于用户来说可能感觉不到啊,这也就是有的时候我们在一些电商系统里,或者一些其他的平台上,我们虽然说已经提交了修改的请求,但是在前端页面上呢,并没有立即给我们展示出来,因为这种这因为它极大有可能啊,是利用了这个缓存功能,那这个缓存功能它有可能是用这种静态的缓存实现的,也有可能是用一些其他这种缓存的方式实现的,总之它不会在我修改完成之后,他立即去把这个静态的资源文件给我们生成出来。
18:25
啊,之前给大家讲这个静态文件生成方案,其实和我们的这个,呃,这种在pro pass里边做缓存很像,那这个呢,是自动化的帮我们去搞了,那如果要是资源静态化的话,我后台后台还得再去搞一个这个,呃,这个这个这个。这个文件输出流,然后再去同步,这样呢完全就不需要了,你请求那个我给你缓存那个就可以了,只是在你第一次请求的时候,我需要把请求的页面呢,全部都给混,都全部都给缓存一下啊。呃,也就是在启冷启动的时候呢,你的机器上可能可能没有数据,一旦要是启动成功之后,那这个数据呢,啊,它也就有了哈,呃,那么我们在这儿现在可以做到缓存了,对吧?那缓存的这个文件其实还是单一的一个文件,这句话怎么理解呢?其实这个呃有另外一种请求的方式,就是以润制的方式去请求,也就是做断点机船,那么接下来给大家来聊一聊呃,断点汽船,以及在这个我们的这个。
19:25
里边有没有什么办法可以去对啊。
我来说两句