00:00
那同学们,我们刚刚呃带着大家呃学习了这个NG的这种重试机制,并且还可以把这个一些不健康的服务下线,那这属于是被动式的这种呃服务下线和被动式的这种健康检查。那么接下来给大家讲这个是主动的这种健康检查,也就是由我们的这个upstream反应代理服务器,主动的去向上游服务器呢,去发动一些指令,然后检查一下它是否在线,如果不在线的话呢,就可以把它给剔除掉啊,在这儿呢,有这么几个可以用的,这么。这么一些插件啊,首先第一个就是这个TG版的,有很多小伙伴在企业里边使用这个T剂,很大一部分原因就是使用它这个主动检查,主动检查机制可以这个通过通过这个UI去呃,主动的看到我们现在的上游服务器有那些已经宕机了,而不是通过这个日志才能够发现,如果没有这种图形化界面的话呢,我们只能通过日志去分析现在的这个服务的状态啊,而且呢,还需要去呃分析一下有哪些是刚刚踢下键的,哪些是刚刚又恢复这个请求的,那是比较麻烦的喷剂呢。
01:11
提供了一套主动检查的模块啊,叫ns upstream check modu,嗯,这个也可以直接安装在咱们现在的NS的开源板上,但是需要去改一些这个NX开源版的源码。然后第二个呢,就是N商业版,N商业版呢,提供的这个模块叫NG X http upstream HC Mo,它并且很无耻的呢,把它呃放到官网的开源版的这个连接里了,我们通过这个开源版的文档也能看到。有这么一个模块啊,而且还不止是这一个模块,是商业版的啊,还有好多模块包括。呃,主这个主动,这个主动的健康检查,包括upstream的动态配置,包括呃这个endpoint啊,主动去反馈一些服务器的一些其他状态信息。呃,这些都需要额外的在这个商业版里边才可以用啊,点击这个链接呢,就到它这个商业版了,但是大家看这它的介绍呢,确实是在这个开源版里的,说明这NG森在逐步的向商业化转型。
02:13
官方开发出来的呢,一般来说更加安全稳定一些,嗯,如果要是不差钱的公司,花点钱呢,买一下这个商业版,也算是支持一下NG这个开源事业啊。呃,那么我们现在在课上呢,肯定不会去给大家讲这个商业版的,那我们就带着大家来一起研究一下它这个开源版N剂给我们提供的这个,呃,主动检查模块。这个TG这个主图介绍模块呢,其实已经很完善了,并且已经应用在这个淘宝网上了,这是它的官方的giar啊,那看这个star也是非常多了,已经1.7K了,那我们先把它给下载下来,在这儿tags,这是第一步啊,现在下载它的这个module,这个的安装呢,相对来说比较繁琐一些,因为需要去改。N开源版的源码,所以呢还需要第二件事,就是下载它的这个pass,这个pass就是修改源码的脚本,呃,对应你自己的这个NG版本去找到相应的pass,现在呢是没有01:21这个版本,因为现在咱们上课用的是01:21。
03:15
为此呢,我们需要重新去下载一个。和它相对应的N这才可以,这一定要注意,如果你自己在课后做实验的时候怎么装都不好使,那这个就非常有可能是版本号对不上啊。其实现在我们还不具备这个编译这个呃。呃,这个开源版的能力,如果对原本比较熟悉的话呢,可以稍微改吧改吧啊,我们自己去针对于当前这个最新版本去,呃,修改它这个补丁。那现在呢,它这个已经距离十一个月之前发布的了,相信他在不久的将来会发这个更新版本的啊,其实01:20这已经算是比较新的版本了。那我们接下来先干第一件事儿,就是重新装一个这个NG4。在这呢,下载一个我就不下载了,下载的注意啊,下载的版本是这个01:20点二这个版本,然后它所对应的这个pass就这个啊,我给大家标记一下。
04:09
01:20点二,你别下载Windows的,这下Windows的Linux编译不了。然后对应的是这个pass01:20点一啊,这两个是通用的,然后这个怎么用呢?把它打开点一下这个肉。我们先干第一件事儿呢,先把这个pass给它给,呃,在咱们的这个服务器上给它搞一个。这样压一个pass。然后把这个文件的全部都给它拷过来,然后注意在这儿你一定得确认在复制的时候啊,新手容易犯的错误就是复制的时候这丢东西先确认一下,你按一下这个A,它是不是能够一个一个正常的显示出来,然后在这儿粘贴。粘贴完之后呢,保存退出,然后这个pass文件呢,我们先存在这儿,那接下来去安装这个,呃,新版的这个NG。
05:00
我已经事先的,也不是新版的,老版的NG,我已经事先给它下载下来了。NG 01:20,我们我们用这个啊,因为这个01:21的用不了,我操不对,这是Windows版的,真的。然后解压缩。01:20,注意啊,是01:20。解压完之后进到这个目录下。然后在这儿去给它打补丁啊。嗯,然后我们要注意啊,在这执行这个pass命令的时候,一定要在当前的这个NG目录下,因为它会运行这个pass,这个就是那个那个补丁的脚本,然后pass,接下来杠P1就指的是跳过它的这个多少个这个行,然后接下来。嗯,指向我们的这个刚刚的这个pass那个文件,我们在root下的pass在这儿来走。
06:05
如果你提示没有这个命令的话,你去装一下,要么install,装y pass。怎么这么慢?这步其实就是修改,呃,现在的这个N的源码啊,因为NG它大量的修改了N的源代码,所以它有很多插件拿过来呢,不是能直接用的。然后接下来呢,我们再执行一下这个pass。大家看啊,他改了这么几个文件,然后改完之后呢,接下来正常情况的安装就可以了,然后configure。杠杠除以。In local喷几个斯。NG20啊,我们给它换一个目录,然后接下来呢,添加这个我们的下载好的这个module,这个module呢,也是提前我已经下载好了,然后接下来直接给他传上去。
07:02
N这个upstream check module。然后给它解开。不是aftertream check module,然后把这个路径呢,爱的module给它给填进去。在这杠杠爱的。Admiral。然后在root下的NGXNG。Upstream check,来走。呃,确认确认一下啊,加进去了,然后接下来make。
08:10
我们。Make in install,这会儿就make in install了啊,我们直接重新装一个这个NG,我们装到了NG20这啊,然后接下来呢,我们改一下这个配置文件。在user local NG格不是NG20,然后配置文件。我们把它这个主动检查的这个,呃,相关的配置呢,给它给加上。嗯。The turf。然后一会咱们再解释啊,先加一个upre。在这个server上面。
09:01
然后这些没用的把它给删掉。然后upstream下边呢,再加一个新的这个location。直接把这两个全都给它给搂过来。这个这个location就不要了。Location这没啥变化,就是加了一个propa而已,然后加了一个新的location叫status,然后这就可以去,呃,调用它这个check这个statuss的这个模块,然后给我们展示这个页面。啊,然后这是access log log给它给off掉,正常情况下如果这么配置的话就应该没问题,那么我们试试看啊,这也是我这个第一次搞,呃,咱们就抱着试试看的态度,我们试一下。然后现在启动一下这个新的NG格。NG格,然后这你一定要注意,如果哦,现在的端口肯定是有冲突的,因为现在起了一个NG格,对吧,把这个它给换一个端口就808。
10:00
然后再保存,你这么直接启动的话,它用的是系统的默认配置,所以在后面一定要加一个杠C,然后加上这个配置文件,它不是它user local n这个20啊下的S。下的NG格四,然后杠C啊,指定这个配置文件的启动,然后在user local ng4。下边的看下的NG个词点看否再奏。哦,这是放错地儿了是吧?嗯。能出去。诶,这不对呀,怎么会。啊,我日这地儿没错啊,不好意思。这个配置文件选错了。In 20下的这个配置文件,OK,这就起来了啊,起来之后呢,我们看看这个效果。
11:06
只要这一步没报错呢,说明就是我们启动成功,配置文件校验成功,说明我们这个check这好使了。然后192就是101,然后808是吧。他报错了没关系,这因为后台的这个呃,Upstream它它访问不到,然后接下来看看这个新加这个check。来走大家看,这是能够帮我们去显示出来现在这个上游服务器状态的,现在两台机器全都宕机了是吧,然后我们接下来呢,起一个看看啊。就配置到这儿,如果你能看见它的话,说明你的这个拈已经安装成功了,这个拈安装呢,它比较麻烦,一定要注意你装它的时候得这个,呃,打补丁就是改源码。
12:03
如果要是出不来这个页面,或者在出来这个页面的时候呢,他给你报什么五,这个500的错误了,那这极有可能是这个源码的问题,那你在打补丁的时候,要看清楚这个补丁和你当前NG的版本它是否对应,如果对不上的话,这它也出不来,就是它也不好使。嗯,毕竟这是ten g的东西,这不是开源的啊呃,不这这这不是那个N官网呃出来的,并且ten g它改了好多源码。那么现在看见它之后呢,我们起起一个正常的,让它起来看看。走。洗一个tomcat,顺便。为什么还要起Tom cat呀?你看这啊,它check htp send。一个header,然后斜杠header是请求的方法,然后这是uri,然后HDB协议杠二杠二杠,杠二杠完加俩换行,这相当于发了一个请求投过来了,对吧。
13:07
啊,请求投,请求投的是send,它要向上游服务器这发请求,发HTV请求,那接下来呢,这个呃,Expect alive表示它是活着的状态,是200系列状态码和300系列状态码,300是跳转吗?对吧,200是成功对吧。然后呢,我们起一下起一下这个tomcat,它才能它才能够这个。这个这个这个检查出来他现在是否在线,你光把机器起来可能还不行。你看我们现在积极起来了。它还是它还是这个下线状态,你看fair count一直在加啊,就是失败的这个。失败的这个这个这个次数,然后起一下起一个随便起一个像抹扎吧杠这DEMO把这个起来。
14:08
起来了,然后我们看看他正常访问能不能访问啊。是808。诶,正常访问是已经过了对吧,然后再看这。诶,这这呢,就有一个已经成功了是吧,这个studiOS已经是up了,另外一个down了,这是主动检查,它会定时的向上游服务器去发送这个HTP头的请求,它还不只是能检查这个HTTP的这种协议,你stream的呢,它也是可以检查的。呃,那么我们看看这个配置它是啥意思啊,你看这就是检查check。啊,然后这儿有一个。这个interview interview啊,这指的是它在请求的时候,每隔多长时间啊去检查一次,这个3000呢,指的是3000毫秒啊,三秒钟检查一次。
15:02
然后这个呃,Rise指的是在请求的时候啊,检测了多少次之后算是正常的啊,比如请求两次成功都成功了啊,然后他标记我们当前的这个状态,它就是正常的,现在是这个up的状态嘛,啊就标记它已经上线,如果啊这个请求五次。啊,都失败了,就表示他已经这个它这个它是down的状态,就把它从我的服务的列表里边给它给摘除掉。然后这个呢。就是这个请求这个超时时间嘛,啊,然后这是协议走的HTP协议。这种主动检查的呃,好处是啥呢?好处就是对于一些这个呃,当前已经下线的服务器呢,就没有必要像我们之前给大家讲的那样,还得再去重试一次,然后时不时再让他上来,就很有可能呢,他刚刚已经失效了,然后上线之后呢,又有无效的请求再打过去。
16:01
把这个请求打到刚刚已经已经这个呃下线的机器上,这是非常有可能的,那么可以通过另外的方式开启一个子请求啊,单独去往这几台机器上呢,去发这个hdv的,呃,这个hier,发这个请求头去检查的是我在线,那如果他要不在线呢,我压根就不往这台机上去发送请求了,相当于把这个检查和使用这两步呢,完全给它给独立开分开来操作。啊,这就是NGS接触第三方插件去完成的主动检查机制,这个这个东西呢是挺有用的,有很多的,这个再说一遍啊,有很多的项目就为了用这个模块采用的喷剂啊,呃,那好吧,这就是我们在这部分内容里给大家讲的,呃,服务状态检查啊,一共有两种方式,一个是用被动式的。呃,也就是当他不可用的时候,我给他标记另外一种,一种就是主动式的,我主动去看看他可不可用,如果不可用,我压根儿就不向他去发请求。
17:01
相比来说肯定是主动吃的更好一些,但是主动吃的呢?现在在NG开源版里边没有,它只有商业版里有啊,现在这个插件呢,呃,可以用这个N剂的啊。
我来说两句