00:00
呃,那么接下来啊,咱们就来看一看这个N这呢,怎么样来帮助我们来进行我们这个负载均衡啊呃,那么在配置N镜之前呢,那首先在我们这个附录连章,那我先来看一看关于我们这个N这个字啊的相关的一些我们这知识点啊,相应些知识点,呃,N这直接发音对吧,是这个N这X,然后它本身的描述是这样的,说是它本身是一个高性能的HTP服务器,然后和谁呢?和咱们这反向代理服务器是吧?那么什么叫HTTP服务器呢?就假如说啊,我现在开发的一个程序是外部项目啊,那外部项目你们要访问的话,你们是得在浏览器里边输入一个地址来访问我呀,对吧?那么这个时候呢,那么你可以我把我的项目是吧,部署在我们的N例子上,然后这个时候呢,你们可以通过浏览器对我的项目呢来进行访问,说老师那这个东西和他K的。
01:00
是不是一样的呀,对吧,那么他tomcat呢,还不太一样,对吧?那么如果tomca的话,它是不是可以把咱们Java写的程序放在tomca上,然后tomcat呢,对吧?那本身他都有大程序呢,做一些我们的处理,尤其是谁,尤其是我们JP这个JP页面呢,它可以去帮助我们做什么编译啊,翻译的一些工作,对吧,但是我们这个N这啊做不了啊,N就做不了,一般你要是想用AN这个做高性能的一个外部服务器的话,它上面一般都是什么,都是一些静态的内容,对吧,比如说我写了一个HTML这样的网站,对吧?那么这个时候呢,也可以把它布置到N例上,效率呢,很快比他们开要优一点,对吧,所以说现在呢,那我们一些公司它的一个正确的做法什么的,就是静态资源,它通过N这个字来访问,然后呢,我们现在呢,动态的对吧,这些什么GP啊,对吧,像这些代码,它通过tomca的服务器来访问,对吧,那么这个呢,就是我后边啊所说的一个叫动静分离对吧,这样的一个。
02:00
我们的设计啊,多分离一设计对吧,然后另外一个呢和反向代理服务器对吧?那么这个东西它也是一个服务器,那么什么叫反向代理呢?对吧,这会后面给大家说对吧,你先知道啊,有一个概念来是吧,那这个反向代理是什么呢?那一会我再给大家详细说对吧?那么咱们先看一看,就整体上这个NG呢特点是吧,它的占用内存比较少,并发能力比较强,就是这个东西呢,做我们这个服务器的时候,它呢有一些优点就是性能很好,对吧?然后另外一个呢,对吧,这个事实上啊,说N这的变化能力确实在同类型的网页服务器中表现的比较好,对吧?那么咱们现在呢,一般在大厂里边,对吧,就其实像这些啊,其实都使用我们这个NG对吧?呃,NG呢,是由我们俄罗斯人他啊一般的大家看这个发音是吧,这个一般肯定是什么司机啊,或者什么夫啊对吧,对吧,这种对吧,采用C语言开发编写的啊,其实有特点啊,同学们,以后你们会发现。
03:00
如果要是咱国人自己写的呢,Java语言的居多啊,就比如说我现在要完成一写一个什么框架呀,或写什么对吧,入言居多,如果说要是俄罗斯人写的呢,那一般是C对这个居多啊,C比较多对吧?那么第一个版本呢,在我们这个零四年啊,其实在零四年刚开始的时候,这个东西用的并不是特别多,因为那个时候咱们说web1.0对吧,那么它基本上单个服务器就能搞定对吧?什么时候呢,就是我现在单个服务器的性能受到咱们这个限制了,对它搞不定了,那么这个时候呢,ND发展的才火起来对吧?呃,那么这块呢,是关于我们这个作者对吧,他的一些我们的介绍对吧?他的一些介绍对吧?那么这块呢,大家自己有兴趣的自己去看对吧,然后接下来我主要干什么呢?说他本身啊,是一个反向代理服务器,那么你得对我们这个反向代理呢,有一个理解,什么叫做反向代理。那反向代理对应的那是不是有正向代理啊,什么叫代理啊,同学们什么叫在中间商,哎,这个我觉得挺好的对吧,你像一开始我们有个同事对吧,他讲了一个项目叫什么呢?叫二手车项目对吧,后来讲一讲这个项目学生没什么感觉,后来他觉得诶这个二手车这个项目还行啊,后来他在那个瓜子上,然后就买了一个二手车对吧,其实那个咱们现在那个就属于什么中间商,其实就是代理很很方便对吧,在买的时候呢,直接对你把这个需求一说,然后他帮你选对吧,然后他帮你约我们这个车主对吧,然后约完之后呢,什么咱们一些上牌啊什么的,对吧,因为也上外地牌对吧,根本就不用你管,直接他们开车之后到外地把牌一上来到你交钱就行了,对吧,这个呢,其实就是我们代理去做一些事情对吧,其实包括咱现在对吧,租房买房对其实都是的,其实都是有代理在里边,对吧?那么怎么样去理解我们程序的正向代理和反向代理的对吧?呃,首先说咱们这正向代理吧,只。
04:53
他说咱正向代理,呃,大家想一想,你们现在没事的时候上Twitter吗?嗯,看Twitter是吧,那没事,你们现在搜索这个是什么,这个百度呗,谷歌,我看有同学上是不是啊,有同学上没事上谷歌上什么Facebook啊,然后没事的时候看一个什么B站是吧,然后有些同学看的就不是这个B站是不是,就另外一个站是不是是吧,当时我们一个同事,有一个学生告诉我说老师我们这个是通过我们这个B站啊来知道你们视频的,看过视频我还不太好意思是不是,我说我现在视频都放到B站上去了,对吧,然后我才知道,对吧,B站是什么对吧,那么注意啊同学们,那么假如说咱们正常情况下,现在如果说你要是想搜索,咱们要通过谷歌搜索,是不是搜索不到啊。
05:41
对吧,是搜索不了的,因为你现在你上不了,比如说gmail啊,对吧,Facebook呀,Twitter,像这些东西对吧,它其实上不了的,对吧,但是大家有办法对吧,各种各样的办法对吧,那么咱们这个叫什么呢?叫什么科学上网是不是对吧,但是你们得注意是吧,现在是不是使用我们这个对吧,这个一百九克上使用的什么啊。
06:04
一般你们现在一般你们在在在上网的时候,对吧,你们是是怎怎怎么可以上网的呀,对就各种各样的方式,但其实这个东西呢,一般它这个最简单这种上网方式,就你要想不花钱的话,网上有一些,但这不稳定对吧,那不稳定一般都怎么做的呢?比如说我现在呢,这是咱们现在啊,我想访问什么呢?我想访问谷歌对吧,我想访问谷歌对吧,那但是我直接访问呢,这个东西访问不了,那怎么办呢?对吧,我现在发现诶这个香港对吧,可能有一台服务器,然后他们可以访问这个谷歌没问题的,对吧,那我现在我可以怎么办呢?对吧,我在咱们这里边我配置一个对吧,我这个代理啊,就是在你们这个Windows对吧里边呢,它不有一个后置配置嘛,对吧,你可以配一个代理对吧,当你访问谷歌的时候,它其实通过我们现在这个服务器来帮你去访问谷歌的网站,那么像这种代理方式呢,其实就属于我们的正向代理啊,它其实属于正向代理,他帮助你去访问咱们的谷歌,对吧,这。
07:05
一种方式对吧,那么什么是反向代理呢?这个反向代理是怎么回事呢?对吧?呃,那么大家想一种场景对吧?想一种场景说现在啊,这个一个人是吧,也不想敲代码了,晚上很无聊对吧?那怎么办呢?对吧,我把这个手机拿起来对吧?第一种方式,那附近的人是不是,那第二种方式呢,人家附近的人现在还在聊是不是啊,其实我这个看到啊,有些同学啊,哪哪个班都有,我一我在上面讲课呢,他在下面就开始键盘就开始不闲着啊,后来我就特意下去看一看,我说这个东西干什么的,是记笔记还是干什么,后来我发现有一个班啊这个学生对吧,一边呢听我讲课,一边呢在下边练的金山打字通,我看你有时候也是这么感受,然后上课没敲过是吧,下课敲对吧,不管上课下课,其实我我都不太建议他们对吧,我说你说你没事儿拿经常打得通对吧,我说你还不如什么呀,我还不如找个附近的人聊一聊是不是对吧?那个更有随机性对吧,然后那个呢,对吧,然后比你这个对。
08:05
今天打得通要好得多对吧?那么还有一种方式呢,像以前我说我我问同学,我说你们一般怎么打,打发无聊的这个时间呀,然后学生告诉我说我给10086打电话,对吧?大家想一想,现在呢,以前还好啊,现在给10086打电话的话,是不是有可能对吧?声音比你还这个这个浑厚啊是不是对吧?所以说呢,但注意啊,同学们,咱们如果要是假如说你是客户端,然后呢,你想给10086打电话,1086呢,它本身是不是一个平台啊,在咱平台后边可能是有什么一号话务员,二号话务员,三号话务员,四号话务员,你能保证你每次对吧,在打电话的时候都是咱们的一号话员为你服务嘛,你保证不了对吧?那么其实咱们这是怎么回事呢?我把这请求发送给谁,发送给咱们10086这个平台,在咱们这个平台后面呢,他其实把你的请求转发给不同的话务员,那么像咱们现在这个平台,它就属于什么,它就属于返向代理。他其实就反映在地对吧,那么结合到我们现在这个程序对吧,那我现在这个出现什么问题了呢?说我现在啊,在咱们这个202上有台机器,它呢可以处理我们这个日志啊,就是你现在模拟城市数据,然后呢,我可以交给202这台机器进行处理,但是我发现啊,202这台机器呢,它的处理能力跟不上了,你的日志量太大了,那怎么办呢?咱们说我现在让203和204对吧,那么也来帮助我处理我们现在日志,但是对吧,但是那么客户端在生成我们的日志的时候,比如说我现在啊在这里是吧,这个客户到在前前端操作我们的网站,它产生了一些日志数据啊,通过咱买点采购一些我的用户数据,那么你现在采集数据之后,那么你交给哪台服务器处理呢?交给202还是203还是204,这个东西我们刚才说是不是要让他雨露均沾一点啊,对吧?那么这个时候他其实可以把谁呢?把我们的请求发送给我们的NEX啊,发送给NEX,然后NEX来帮助你把请求分别转发给。
09:59
202203还有204这叫什么?这其实它完成的就是我们这个反向代理的一个我们这个功能对吧,所以说N这次它是一个反向代理服务器啊,反向代理服务器也叫负载均衡器对吧,也叫负载均衡器,那么具体咱们这个N这个的反向代理这些功能呢?那么大家可以自己去看对吧?那么具体这些东西怎么来用呢?其实安装啊什么这个使用起来比较简单,咱们一起啊来看一下啊,一起来看一下,呃,那么首先呢,要想安装N这个对吧,那么你在你的机器上,那么得先准备一些环境,因为它是用我们这个C语言写的嘛,对吧,所以说呢,那需要有些环境,像我们GCC以及GC加加前面应该已经装过了,对吧,对吧,但这个东西没关系,你直接呢,把这个拓亚对吧,再去安装一遍,那也没什么太大问题对吧,那我来到我当前我们这个202上对吧,来到我们这202上,然后接下来呢,去执行我们现在它的一个安装操作啊,去执行我们现在安装操作对吧。
10:59
那么这个时候呢,他开始呢,进行我们现在前期准备,就是说我现在啊,要想安装N,这它需要的一些我们的依赖对吧?那么你需要把这个环境呢,给我装一下啊,你需要把这环境给我装一下,然后接下来那么咱们现在把这个装完之后呢,那么你要把这安装文件呢,给上传到我们这个服务器上,这个安装文件在哪呢?在我给大家提供的资料中,然后这里边呢,有一个我们现在对吧,这个工具对吧?然后接下来这里有一个ND啊,这里有一个N对吧?那么咱们现在把这个N来上传到我们现在这个服务器上,我已经装完了,那么这个时候呢,诶,它这个其实比较快,那么如果说你们以前没有装过的话,那这块呢,可能也要稍微花一点时间,对吧,但是一般这个能接受啊,那来到我们现在OT,然后呢,Software下边啊,来到software下边,然后这里边有一个NG对吧,这个呢,是我们现在这个安装文件,对安装文件,那么这个安装文件呢,因为它用C语言写的,就不像我们原来。
11:59
哎,对吧,再去装一些我们简单程序的时候,直接解压到我们这个model就可以了,对吧?那么它是不是也得进行一些编译啊,所以说呢,那我对咱们当前的文件呢,做一个解压,解压到我们这个model这个这个S目录就可以了,对吧?那解压完之后,它生成了一个NG对吧,这样的一个目录,咱们进入到我们NG目录里边来啊,进入到N目录里边来,那么咱们现在在这目录里边来干什么呢?那么执行这么两个操作,第一个来指定我们要把这个N安装在哪,通过咱们这configuration啊,通过conig对吧,来指定,那我现在呢,要把它给装在哪?那么另外一个呢,对着做编译,并且呢做安装,那么咱们把这个操作呢,来执行一下,首先呢,我现在在咱们这里边,我呢去执行我们现在这个con这个命令,那么这个命令后边跟着一个参数杠杠perfect来指定,我现在呢要把它安装在哪,我呢就把它安装在我们的OPT model下面了,对吧?来CTRLC拿过来直接呢在这执行一下对吧,其实执行的是我们现在这口。
12:59
一个这个命令对吧,然后接下来咱们呢去执行。
13:03
啊去执行,那么执行完毕之后啊,那么接下来我要干什么呢?那我要去编译,并且呢去做咱们安装对吧?来把这个东西make和make install直接一块做了,你也可以分开先make,然后在make install,对吧,咱们呢是直接放在一起了,对吧?来CTRLC少一个是吧,来CTRLC,然后接下来呢,在咱们这里边,然后以安装。好了,那么安装完毕之后呢,咱们来到我们这个OT这个model目录下边,对吧?然后接下来那么在我们这个model目录下面就多了一个NG这样的这个目录,咱们进入到我们这个NG里边啊,进入到NG里边,那么它这里边呢,现在有这么四个子目录对吧?那么这四个子目录啊,其实大家这个猜也能大概的猜出来干什么的吧,首先第一个咱们进入到我们这com中对吧?那么在咱Co里边呢,它有一些关于我们这个NG它的配置文件,那么其中最重要的在哪呢?就是这个NG.co这个是我们这N这最最最最最重要的一个配置文件了啊,就是我们现在如果把这个N这想弄明白,那么这个配置文件呢,那你一定要给我弄明白的啊,把这配置文件得给我弄明白对吧,然后接下来那么咱们现在的这个文件的内容,我一会再给大家说,咱们先整体看对吧,然后接下来往上走,那么除了我们现在这个。com之外呢,那么大家。
14:37
他还应该对一个目录比较熟悉,就是咱们这个。到A一般呢说B目录下放一些可执行命令,咱们那个S病下边说放一些我们的启动或者停止的一些命令,对吧?其实这里呢,它合并了就一个,它里面就一个我们的指令叫NG,它负责我们当前NG的幅度的启动和停止啊,然后接下来那么再往上走,那么大家还能理解的,那肯定是不是有一个咱们log呀,那么主要呢,放的是我们的日志文件,如果说你的ND出问题了,那么大家一定要学会看我们这个日志,对吧,不光是ND啊,就是你们现在这启动的时候,诶发现卡卡起不起来了,对吧,那不要想,诶我这卡卡为什么起不起来了,对吧,你现在你得看一看我这个启动的时候,这个日志给咱报什么错了。
15:24
对吧?然后接下来最后一个,那么这里呢,有一个HTML这个目录,那么进入到这个目录里边来呢,大家看这里有一个五零几,什么HTL,还有一个index,那么五零几刚才咱们是给大家说过,一般是什么情况,服务器内部出错了对吧?那么也就说啊,一旦我们现在呢,服务器内部错的话,那么这个时候呢,NG的服务器它帮你做一个内部的跳转,让你跳到我们现在这个页面来,对吧?那么还有一个index index一般呢代表欢迎页面,那么这里面内容什么样的,来大家看一看对吧?进入到我们现在index里边来,它呢,其实是一个我们HTML对吧?那么这里是欢迎你对吧,打开我们这个N,那么具体这是的一些样式,对吧?然后呢,这里表示标题welcome n,然后这里是些说明,其实这就是一个画一页面,一会呢,咱们也能够看得到的,对吧,那么主要呢,有这么几个目录啊,主要有这么几个目录,然后接下来,那我现在呢,看完我们这个东西之后呢,那么咱们是不是就可以去启动一下。
16:25
NG量就NG给安装完了,那么这个时候呢,我就可以去启动我们这个NG,它这样的一个我们的服务,那么怎么去启动呢?在我们的XB目录下面这里呢,有一个NEX对吧,你直接执行这就OK了,对吧?来看一看,咱们现在呢,在启动的时候它报了一个错,注意啊,在这里它启动的时候呢,他报了一个错,你看一下这个错可能和什么有关系啊啊同学们这个东西说的都对,对吧,什么呢?我们现在呢,什么有时候断过号的也有同学我听说说什么permission,你看permis是不是权限有关系啊,对吧?那么咱们这NG词啊,它默认端口号多少呢?默认端口号是八零,这个八零端口号注意啊,同学们,假如说我现在在这里,我想访问百度,那么咱们看到好像是我是3W100度对点com直接是不是就访问网站了呀,其实呢,咱们省略了一个东西,省略了一个什么呢?省略了一个冒号八零。
17:22
对,就我们现在啊,在咱们这里边我省略了一个我们这个访问百度的它的一个发行端口对吧,为什么?因为咱们现在拓过浏览器的,对我们这个服务器进行外部访问,默认端口号就是多少,就是八零,就是你不加咱们现在的这个默认啊访问我们现在服务它的端口号也是八零,对吧,而且我们说了这个端口号它的一个范围呢,应该是一到咱们这6535之间,那么其中呢,一到到1024,我们这个东西不建议大家用啊,一到1024这个东西不大家用,因为我们说这个一般是我们系统内部的一些服务,对吧,然后他给使用了呀,对吧,但是N这次呢,他使用的是我的八零啊N这然然LIS认为你这个端口号啊都有问题,对吧,一般咱们这个小于1024的应该是我的系统的才对,对吧,而且你现在就是一个艾特硅谷用户,它不是管理员级别,那么你就是启动我的NG服务呢,对吧?他会给你报错,对吧?那么咱们现在怎么去解决这个问题呢?那么在我给大家提的讲义里边,这里有这么一句话。
18:21
啊,这这么几句话,那么这句话的作用是干什么呢?这句话的作用就是让我当前用户对吧,那么也可以使用我们的1024以下的一个端口,短句末的情况下,它只有在咱们入的用户下面才可以使用1024以下的端口,现在咱们是IV5用户,对用不了对吧?那么你可以把这句话呢执行一下,那么这句话执行它表示的就是哎,我现在啊,这个爱度硅谷用户也可以使用我们这个端口了,对吧?那么我现在呢,把这个东西CTRLC拿过来,拿过来之后呢,在咱们这里去执行一下,注意,那么因为你现在呢,要设置我们现在是哪一个服务,所以说这个路径呢,那一定不要错了。对,如果说你们在安装的时候和我路径不一样,对吧?那么这块呢,要改成你们实际N这的服务它所在的路径对吧?然后接下来咱们现在呢,来输一下我们的密码是吧,那这样的话,咱们现在呢,设置完这个操作之后,你再去执行我们这个NG命令,来回车看一看,这个时候是不是就相当于咱们启动的时候没报错了呀,对吧?那么到底启动成功了没有呢?你通过咱GPS命令了,那是看不到的,因为它本身你这用C写的嘛,对吧,所以说你要想看的话,那应该是杠2EF,然后grab NG是吧,通过它来查看,那么这个时候你发现,那么其实呢,NG它的服务在启动的时候,那么启动了两个进程,一个叫什么,一个叫master,那么另外一个呢叫worker啊,它启动两个进程,一个叫master,一个呢叫worker对吧,那么这个master它主要负责咱们接收我们的请求,这个worker呢,对我们的请求做一些我们处理,怎么样做咱们这个负载,对吧?那么其实它本身呢,在咱们做的时候,他呢也有一个master。
19:58
Worker在里边对吧?那么接下来服务启完之后,那么怎么样来确定一下,如果这东西启动成功了,第一种方式通过咱们查看进程,那么第二种方式咱们呀,可以去访问一下,那么访问谁呢?对吧?那大家想一想,我们当前这个服务是不是在我们的2020这个机器启动的呀,所以说呢,你可以在你的Windows里边HTTP,然后冒号哈杜202,这是我现在N这的服务所在的主机,那么接下来,那么你要想访问N的服务,它的端口号是多少,端口是八零啊对吧?然后记在你通过他八零去访问一下,这个八零可以省略,而且你不加是吧,你这这它也是八零,而且你加了,大家看他把它八零是不是也干掉了呀,对吧?默认其实我们在访问的时候就八零,然后接下来你会看到这样的一个页面,这个页面你们刚才见过吗?
20:48
页对吧,是不是咱们这里边有一个什么index CT ML啊对吧,就是咱们现在这个欢迎页面啊,就是咱现在换迎面对吧,当你看到咱们这个页面的时候,那说明啊,咱们现在这个NGS对吧?安装成功了对吧?NG安装成功了,那么NG安装成功之后呢,那么咱们现在呢,也启动成功了,对吧?那么有可能呢,我会在咱们它启动的过程中,然后对我们的NG的配置文件呢做些修改,那么一旦我现在对某个服务的配置文件做修改的话,那么这个时候呢,我需要把这个服务啊重新启一下。
21:20
啊,把这服务重新起一下,那么怎么去重新起这个服务呢?那么要重新起服务的话,那么应该在我们的S闭下面有一个NEX,然后接下来杠s reload对吧,那么这个呢,是对我们这个服务来做一个我们的重启,啊对咱服务来做一个我们重启对吧?重启我们现在服务对吧?那么怎么去停止这服务呢?第一种方式kill对吧,那肯定能kill对吧,那一般的咱不用对吧,那不用kill,那怎么办呢?在这里N-s stop对吧?那么这个呢,是停止我们现在的服务。啊NG如果启动的话,对吧,这个东西直接就NG的命令就可以,如果说停止的话呢,直接加杠s stop到杠s stop,其实这里还有一个命令,就是对于我这个测配置文件呢,做一个测试,导致我现在呃,我呢在启动的时候,我有可能这个指定我这个n Co配置文件,那你的配置文件写的有没有问题啊对吧?那么你可以通过咱们现在呢这个配置文件,对吧,加上加上配置文件,然后面加杠T来做测试,对吧?那么这块呢,你知道这个命令就可以了,对吧,知道这个命令就可以了,然后有些机器呢,它在启动的时候,那么可能啊会报咱们这样的一个错误,那么你解决的话呢,你在这加上一个这样的一个链接,对吧,就可以了,但是对吧,有好几个班没有碰到这种情况了。
22:37
啊,基本上这个东西这个这就不是说所有的都会都会碰到对吧,有很多个班级啊没有碰到这情况了,就是个别对吧,这个同学对吧?然后呢,这个机器可能会出现这个问题,然后呢,那这个时候你解决的方式就是这种按这种方案去解决就行,对吧,如果说正常的话,这会你不用做好,这是关于我们的NG,它的一个安装启动和配置啊把这个时停一下。
我来说两句