00:00
呃,同学们,我们接下来继续学习这个NGS的一些相关的使用啊,在这节课当中呢,我们给大家讲第三方模块应该怎么去编译到我们原有的这个NG里啊,也就是把这个原有的NG呢去做一次升级,在升级NG的时候呢,最好是保持原有的这些数据文件和配置文件呢都不变,我们是额外增加了一些模块核心的功能。呃,再有呢,就是我们通过这个呃stay啊,这个第三方模块啊,来给给大家做这个演示,这stay这个模块呢,也是比较常用的一个模块,它是呃我们上节课给大家讲的这个基于呃cookie去做这个负载均衡啊,也就是定向的这种绘画保持的扩展版啊,它把它封装到了一个额外的第三方模块里,这个呢,是在我们开源版本的NG格子当中呢,没有默认包含的,需要我们去手动去安装下载,这sta的功能呢,要比原有的这个呃哈希cookie呃要多得多啊。再有就是。
01:06
呃,原有的这个哈希cookie啊,它得是你后端或者说你上游服务器啊,它得下发了呃,Cookie啊,那我们才可以去哈西,然后来完成这个绘画,保持这个sticky呢啊,它不需要这个我们的上游服务器啊,去这个呃,支持session啊,也不需要他去下发cookie啊,也就是说我们可以通过sticky来完成,对这个我们原有的呃,像一些NGS的集群啊,这种负载均衡,我们给大家画图简单的讲一下。我们在之前的这个,呃,哈希。Session的这个内容里边呢,是后端呢,它有这个或者我们的上游服务器啊,它有这个动态的功能,我们上次课里边的给大家呃示例的呢,也是用这个Tom cat对吧,他下发的这个呃这呃这个j session ID。
02:00
那么如果说我们的后端服务器它是静态的话,后边是阿帕奇,呃,I is,或者是这个,嗯,就是NG格SPA有这么一种场景,就是我们前端有一台NG服务器做路由后端的,呃,有好多的NG呢,去做存储,比如说视频,音视频的下载啊,都存在我们的后端的服务器当中。那么我们就不希望和呃已经这个建立连接的这个NG的服务器断开连接,因为每次呃建立连接这是非常非常大的开销,那我们就可以通过这个DK来完成前后端的会话保持,也就是说NG做负载交通器,后端的NG呢去存储静态文件啊,但是这个存储静态文件它并没有动态的这些脚本没有下发cookie,那么就可以通过这个DK来完成这个绘画保持。那么接下来给大家来演示一下啊,怎么去使用这个DK,以及这个怎么去升级我们的呃,原有的NGS。
03:01
啊,我们先把这个虚拟机啊打开检查一下,我们现在呢,还是跑了,呃,五台虚拟机啊,嗯,很明显我现在这台机器的内存已经有点不太够用了,大家自己做实验的时候,最好是把自己的内存搞得稍微大一点啊,16G是有点儿不太够用了,当你的这个虚拟机开多了之后。啊,那这会儿呢,我们把这几台机器都已经开进这个这个。启动起来了,那接下来啊,我们连一下。这五台机器。那么全连上之后呢,我们把这个呃sticky啊给大家下载安装一下。在这儿首先这个DK啊,它在官方文档里边就有,我们在后续的课程当中呢,会比较频繁的去看它这个官方文档啊,因为官方文档算是比较权威的嘛,但是官方文档它解释的不够详细,有很多时候我们看这个官方文档啊,根本就看不懂。
04:06
它太这个简单粗暴了,解释的呢不太多,在官方的你看啊,在ng.org里边呢,就有这对sticky,呃这个命令的一些解释啊,就是对于cookie的,呃,这种定向的分发,它已经不再是简单的这个呃,哈希这个cookie了。这是使用的参考啊,我们的啊,这个sticky的一些使用的方法在这边都有,英文都很简单,然后另外呢,就是这个TG当中呢,有这个SDK这个模块啊,在TG里边默认的已经包含这个模块了,当然你在安装的时候也需要去编译进去。啊,Sticky这个模块呢,嗯,是比较常用的啊,我们在之前的工作当中就用过啊。我们这次是只安装这个第三方的这个版本,装到我们这个开源版本的N里啊,然后这个官网呢,也有两个。因为这个模块呢,时间已经比较长了,也是比较经典的模块,这第一个呢,呃,是一个代码托管器啊,这和这个github很像。
05:08
有同学可能没上过这个网站,叫bit bucket是吧,在这儿这是第一个它的官网啊,这里边儿也有一些解释,如果这个如何,怎么去使用。然后另外呢,还有一个。还有另外一个版本,Github上的。在这儿。这两个版本啊,你用哪个都可以大同小异,我之前用的是,呃,这个版本啊,这个版本在这个。呃,Bit bucket上的啊,这原来是这个谷歌给开源出来的一个工具啊,后来他给迁移到这上面了。然后这个github上的还有一个第三方的,呃,这个。这个这个这个呃,作者吧,你看这个star就能看出来啊,这个项目其实也没什么太多人关注,对吧,一般来说呢,我还是选择这个版本,因为这个之前用过嘛,而且它就。
06:01
源自于这个谷歌啊,是谷歌把它迁移过来的。那这个下载的话在这下。点这个download在这这个tags可以去选择版本啊,大家可以看到这还2015年的,也是好多年前没更新了,不更新呢,并不代表它不可以用啊啊是因为它比较稳定,比较经典了啊,当然呃,这上面的功能呢,也算是比较完善了,拿过来直接用就可以了,这里边有不同的压缩格式,你我们一般来说用这个GZ的对吧,把它下载下来之后呢,我们可以把它。呃,我我我先把它下载下来啊。我们把这个下载下来之后呢,然后把它给呃,传到我们的这个服务器上。这个的安装呢,安装在我们的负载均衡器上,就是零一的这台服务器。打开。
07:00
下载完了吧,在这儿呢,啊这啊。然后把它给传上去。这是在哪下载这里啊。把它给传上去。呈上去之后呢,我们解压缩安装啊。T。检测完之后呢,嗯,这个目录有点长是吧,你愿意的话可以给它换个名字啊,如果懒得动的话就别动了。然后接下来啊,我们重新去编译一下,呃,咱们原来的这个NG,这台机器上呢,已经安装过NG了是吧,我们重新编译一下这个步骤呢,都已经给大家详细的记载在这儿了。
08:03
呃,重新编译N这个字啊,你得先找到它原来那个我们安装的那个源码。一点二一点十六,我们这次安装是基于原有的这个NG的升级啊。然后之前呢,我们在安装的时候呢,如果加了什么这种配置的话啊,比如在configu configure的过程当中,你的置比较多的话,记得一定要把它给粘过来,因为你在重新编译之后呢,会生成一个新的这个全新的NG格出来。他不会记住你原来这个NG格磁体这些配置的啊看。呃,我们之前的配置呢,我之前的配置啊,基本就没有是吧?啊就指定了一下这个目录,Perfect等于user local n几,我们把它装到这个N几目录里,然后接下来啊,给大家介绍的这个命令是。
09:03
爱的module。这个a module单指的是添加第三方的这个模块,如果是N这个自带模块啊,我们在编译的时候呢,没有指定这个把它编译到我们这个安装包里的话,那。用的是with的命令啊,这个A呢是添加那个是with with指的就是已经在我们N的官方的版本里了啊。在这呢,我们用这个ADD。Module,然后找到我们刚刚这个配置好的这个,呃,解压好的这个目录啊,就是这个目录,这在我们root下的NG。这目录比较长是吧,无所谓。然后这个命令添加完之后呢,我们重新去,呃,Configu一下啊。
10:02
Configure的过程呢,没啥问题,那再接下来呢,我们需要去make了。我们稍微等一下。大家看啊,呃,我们用的这个模块呢,在我们当前的这个N版本里呢,它会报错。如果要是报这种错误,就是和老师这个屏幕上相同一种错误的话,你可以用这种方法去解决,就是因为呃,因为这个呃。Sticky啊,它这个发布的这个版本啊,时间过老啊,我们需要去简单的去修改一下它的原文件啊,在这儿呢,我们打开它的这个,呃,其中的一个。头文件啊。The Jeff。我们找到它的源码。
11:01
这刷新一下。呃,这个NG X hddpdkic.h在这个C语言里点H啊,它是头文件啊,它主要是用来这个。呃,做一些声明啊,引用啊,还有这个,呃,这个这个对于一些这个变量的这个定义的。真正的实现是在这个点C文件里,在这个文件里边呢,我们找到这个,呃,一些引用include这里。在这后边呢,加上这两行。大概在呃12行13行左右,把这两行给它加上,然后CTRLS。我们保存一件。然后再继续。呃,注意啊,这会儿你得重新去看figure一下啊,你直接make呢,它它不好使得重新的这个。
12:04
呃,再再执行一下这个配置。然后再来make。大家看啊,这会儿又报了一个错误啊,缺这个open s SL下边的这个SHh.H这是因为它还需要另外一个依赖,就是open s SL的这个这个这个这个development,这个这个包,我们把这个东西安上啊。这这这个东西。真甜。
13:05
呃,我们在实际的这个使用NG的过程当中啊,呃嗯,趁着这个安装的过程啊,跟大家说一下。经常会用到一些第三方这些拈块,但用第三方模块的时候呢,我们需要简单的去甄别一下,看看这个模块啊,它稳定不稳定,用的人多不多啊,我们尽量尽可能啊,不要让我们自己去当这个小白鼠。是吧?然后再重新来重新编译安装。然后make。这会儿呢,我们的这个安装呢,就没有问题了,那虽然说这个make这个过程执行完成了,但它究竟呃在安装后它有没有什么问题,一般来说我们在线上啊,就是生产环境,或者说我们的真正的工作的过程当中,你不能直接把这个。
14:06
呃,Make,好的,这个文件直接给替换掉,我们需要这个简单的去测试测试啊。这里边有个测试呢,可以用这个make upraage啊,就是升级这个呃程序。Upgrade啊,Make upgrade这个命令呢,可以帮我们去检查一下啊,你有没有什么问题。你看啊,他会帮我们去跑一下啊,这个呃,可执行的程序,但是现在的这个呃程序呢,我们还没有替换。这个make upgrade,呃,它只是帮我们去检测一下这个升级有没有问题,但并没有真正的帮我们去升级,对吧?通常我们make完之后,后边跟的是make it stop,这个它会把我们编译好的所有的这个文件在这儿来看。OBJS,这是我们编译好了所有的文件,你在make install的时候,其实就把这个OBJS里边的文件呢,呃,给它给复制到它应该存在的地儿啊,比如这个N这个。
15:13
主的这个可执行程序啊,那我们需要如果想要真正的去平滑升级啊,不破坏原有的这个配置和原有的这个目录的一些资源的话,我们就可以把这个NG这个可执行程序,它已经编译好的这个可执行程序和我们原来的那个呢,给他替换一下。这个替换啊,最好也是做一下备份。呃,我们在这呢,把原来的这个我们搂的NGSB。这个可执行程序呢,给它呃挪一下换个名字啊,这个做个备份,N这个SSPN这个点old啊,这样我们就把它给挪走了啊,然后我们再把这个文件呢,给它给copy过去。
16:02
把它给挪过去。N这个字。到user local sb。这这这个目录。这样呢,呃,我们这个文件呢,就替换过去了,那么替换过去之后,我们当前这N这个它究竟有哪些功能,我们可以这样看一下,到这个目录下user local。N几个?我们刚才这个。没有call过去。哦,不好意思啊,这个copy的这个。这个命令这个不是这个这这个目录指定错了,Root下的。我们的N这个词,我们再重新抠一下,在OB跟S下,然后CP。
17:08
N到user的S定理。然后再过去。In。I。然后哎,这会儿就有了啊,刚才那个目录错了啊,NG杠,注意大V,这样就可以看我们在编译的时候呢,带了哪些这个配置啊,大家看啊,在这里边就有这个我们之前配的这个NG啊,这个sticky这个模块了。那这会儿呢,我们去运行一下我们这个重新升级好的这个NG格。呃,System ctl,呃,然后starts,大家看没有报错是吧?
18:00
看一下这状态。正在running,没有问题,呃,我们用这个。浏览器看一下。192.168。当前它这个报错啊,应该是我们之前配置的问题啊,这就是这个,呃,我们给大家讲的啊。啊,怎么去升级这个NG啊,以及去编译一个第三方模块啊,当同学们自己编译这个第三方模块遇到什么困难和问题,有一些报错的时候了,呃,一般来说啊,在网上都有解决方式和解决这个,呃,这个这个这个答案了,你去搜一下就可以了,如果这个模块报的错,你搜都搜不着。那基本上这个拈最好你也就别用了,可能他这个用的人呢就不多啊,你也别当这个小白鼠,那下节课呢,给大家讲这个。Sticky这个模块究竟怎么用啊?
我来说两句