00:00
那接下来我们看一下这个sticky这个模块怎么去使用,我们现在这个服务已经起来了,我们进到这个配置文件里,我们看看究竟是哪出了问题。应该是这个,呃,Upstream后端的这个代理服务器,那服那几个服务没起啊,对吧,我们不用看,其实应该能猜得到。我找到这个。对吧,这104105这两个机器都没起,那接下来我们把它给起来。0405现在已经连上了是吧。两个tomcat。Local。Tomcat。热一下,然后给这个也起来,两个都起来。
01:03
卡特琳娜。两个都起来了,然后我们再呃看一下。刷新一下好没有问题了,对吧,那现在这个咱们再解决一个问题啊,就是现在这个页面里面没有这个CSS样式是吧,那之前这个配置里边呢,缺东西。我们就之前在这个基础课程里给大家讲了东静分离是吧,现在这个静态资源呢,已经不在原后后端这个tomcad服务器里了。应该是缺这么个配置啊,所有的CSS呢,你就不要再返佣代理的后端服务器了,你直接让他在本机里边去找啊,在这个目录下去找,加一个location就可以了。在这加个location,然后呢,我们再看一下这个配置,现在还是哈希request uri对吧,这是之前咱们讲的,那接下来呢,我们要给它改成我们刚刚编译的这个sticky这个,呃拈我们先把这个哈希这给去了,我们看一下效果啊,是保存。
02:10
然后reload一下。Reload一下N,然后再看看这个效果。啊,大家注意看这个左上角,这是区别,一个是零四,一个是零五,这是两台机器,我们现在做负载均衡的时候呢,它是轮巡的啊,一人一下,那我们接下来改一下,用一下我们刚刚呃安装好的第三方模块sticky啊,这个按这个使用呢,其实跟之前那个哈希一样,直接在这儿,在upstream这个模块里啊,它作用作用欲是在这里边啊,在upstream里。加上这个sticky啊就可以了啊,然后CTRLS保存。
03:00
我们再reload一下,然后再看一下这个页面。来刷新。04050405,现在呢,是没有什么变化对吧。那么我们遇到这种问题的时候啊,你先你这个不要慌啊,刚才是reload了一下,那接下来我们试试这个restart。这儿。然后我们再试一下。大家再看啊,这会儿就已经可以了啊呃。在做这种配置的时候呢,多试一下啊呃,你先别怀疑自己之前是不是配错了,然后这个。现在呢,它的绘画已经能保持在这个零四上了,大家看一下它怎么做到的啊,我们在这个cookie,就是这个面板下application下的这个cookie,在找到我们自己当前这个站点,我们看这里边呢,他给我们下发这个cookie,除了我们后端Tom cat下发这个Jason ID,它还多了一个叫root的啊这么一个cookie,然后后边这个value呢,注意看这个结尾是三八。
04:15
对吧,我不管怎么刷新。你看。这个root所对应的这个值它不变,然后加3ID也不变,这就说明什么呢。后端的这个。Tomcat一直都是我们访问的这个tomcat,然后另外一个问题说明什么呢?这个root它是哪来的,这肯定不是我们后端tomcat给下发的,这就是我们这个插件啊,或者第三方模块这DK,它给我们下发的这么一个呃,Cookie啊,用来维持我们和当前的这个呃后端服务器的这个会话,那这个呃sticky呢,刚刚我跟大家说了,它不止是可以用在。啊,Tomcad上啊,它还可以用在后端是静态服务器上,当然在这儿呢,还有一个问题就是。
05:02
这个肉。这个名字它是怎么来的,就是我们在配好这个sticky之后,我们现在什么都没加。啊,这是。可以配置的就是这sticky呢,后边可以配置的参数呢,呃,有这么几个比较常用的,比如说这个这个这个name,我们这cookie下发这个cookie的名称是什么,我可以管它叫root啊,如果不配的话,它默认就是root啊,做路由嘛,然后另外呢,还有一个是express啊这个。呃,Cookie的过期时间。嗯,大家看啊,这个cookie呢,它是有过期时间的,对吧,这个Jason ID它是没有的,它是基于session的啊,就是基于绘画关了就没了,对吧,那这个呢,它是有这个。呃,会话时间的,也就是你下次打开浏览器,如果你还携带这个cookie,如果还没过期的话,我还会给你路由到后端的固定那台服务器上,这是我们之前那个哈希cookie所做不到的啊,就是它的过期时间。
06:02
呃。这是我们现在在这个tomcat上做的事例,这里边有一个坑啊,大家一定要注意一下,你在用这个sticky配置这个name的时候,你千万不要把它和后端这个tomcat下发这个Jason ID起的名字冲突了,如果冲突了的话,这里边就会有问题,我们看一下。这sticky我们后边呢,给它加一个这个cookie的名称。比如我们管它叫也叫Jason ID,注意这个sticky这里边儿下发的cookie,这是NG下发的。啊,这个Jason ID是tomcat下发的啊,我们保存一下。然后。来。重启一下。大家看这个效果。是不是有点不好使了啊,对吧,那个root没有了,因为它叫这个JID了是吧,然后再看。
07:00
而且每次刷新这个G3ID,它会变。大家看。这就是冲突了对吧?那root为什么还在呢?你把这个清了,注意看啊,这个Chrome浏览器真是开发者的利器在这呢。可以把它给清了,把所有的cookie全都给清了,你再看。这会儿就只有一个J3ID了,就没有我们这个root了,大家注意看到了吧,因为它两个冲突了吗。每刷一次它都会变一次是吧。这是对于这个,呃,后端是动态服务器的,这种情况下用这个TK,那如果后端是静态服务器呢。我们这儿还有这个零二和零三两台静态服务器是吧。我们把这个配置文件再改一下。在这后边呢,给它改成102。
08:00
103,然后这个name呢,别叫Jason ID啊,这是非常敏感的关键字。呃,就是tomcat默认下发的这个cookie,就叫这个是吧。然后这这会儿呢,我们再重启一下这个。服务器或者reload一下,如果reload不好使,你就restart啊。然后再刷新。大家看。这是转发到后端的零二了,再刷还是零二,那么我们把这个清了,注意看啊,现在这个cookie里如果你不清的话,它还有JID呢。再刷新。现在只有一个root了啊,注意看最后的结尾是AED对吧,然后我们再刷新还是AED。然后另外呢,如果我们新开一个标签,大家猜我们现在是101对吧。新开一个标签,他在访问的时候,这个结果是零三还是零二,有没有可能会发生变化呀?
09:00
我们猜一下,是不是讲道理,应该不会发生变化。因为它是基于cookie的,我们这种浏览器它的特点就是啊,在多标签下呢,会共享这个共享这个cookie是吧。来,我们试一下。走。是不是还是零三,然后我们再看一下这个cookie的这个ID对吧,AE。对吧。这个也就是说什么呢,只要他带着这个原来这个cookie啊,只要它的cookie呢没过期,因为我们现在没配置这个express啊,就是它的过期时间可以在这配置的。如果它没过期,如果还能用,那么呃,就会一直保持这个会话啊,和后端的服务器不断开,这就是这个sticky啊,这个sticky呢,它的功能给大家总结一下,它要比这个原来的这个呃哈希cookie的功能要强大的多,而且呢,它还能够保持对于后端静态服务器的这种会画会画的这个这个维持,而不去这个每次去跳转了。
10:04
这个每次去跳转这个呃动作呢,其实它是有额外的开销的,因为NGS呢有keep live的这个功能,那么接下来下节课呢,就会给大家讲这个keep live的啊,有这个keep live这个功能呢,能减极大的减少这个三次握手这种开销啊。这就是呃,第三方模块的使用,以及NX怎么去平滑升级啊,N这的平滑升级的时候呢,一定要注意。我们呃,别把这个这个这个呃原来安装好的NGS啊,你给它给覆盖掉了,就是你make完之后呢,别make in install,把make in install直接就给你,把呃新的这个NG直接全部都给你复制到你那个安装目录里了啊,我们只需要把这一个这个NG的主程序给它复制过去就可以了,然后使用这个sticky的时候呢。呃,也要注意一下啊,它对这个,呃,绘画这种维持是基于cookie的啊,那么你的应用场景它适不适合这种方式,不是所有的这个功能模块我们都得拿过来用一下的啊,要一定要结合自己的实际的这个业务,看看它适不适合,如果适合的话你再用,如果不适合的话呢,我们还需要去做一些其他的这种,呃,这种选型和调整啊。
我来说两句