温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
同学们,刚刚我们看完了它的基本的目录之后呢,呃,接下来我们看看它的基本的运行原理啊,在这给大家准备了一张图,呃,这张图里边呢,呃,我们把这个目录和这个一些呃配置文件都给它画在这个图里了,我们先简单看一下,在这左边的呢,是我们的用户,他在请求我们的这套系统的时候,就N这呃,透过网络,当然现在不是互联网,但是他也是透过网络请求的,一定要注意这个这一点,即使是我们访问的虚拟机,它也是通过网络请求,呃,请求到目标地址,这个地址就是19216844.101,当我们的请求发起之后呢,呃。NG在响应请求的时候,它的过程是这样的,首先NG的主目录下呢,有个sbin sb下边有NG这个可执行文件,我们要运行这个是要把这个可执行文件把它给跑起来的,在这个可执行文件跑起来之后,它会发生以下这几个动作,首先它会开启这个master的一个主的进程,注意啊,这是进程,呃,这个主进程里边,呃,会把这个。
01:06
配置文件读取起读取出来,然后把这个配置文件呢,再去做一次校验,看看这配置文件究竟有没有错误,如果没有错误的话呢,它会开启这个它的子进程,呃子进程呢,开启之后是真正运行在我们呃这个服务器当中,这个多个这个进程当中其中之一,呃也就是他,也就是他在运行的时候呢,会分为两种进程,一个是这个主进程,一个是子进程,主进程呢叫master,呃,它的这个子进程的叫worker,我们刚刚通过这个啊。这命令里边呢,也能看到我们启动好这N这之后它不止只有一个进程在的啊,这N这里边呢,有一个master,还有一个worker master,这就是主进程啊,主进程它是不干活的,或者说他不处理业务,它不是不干活啊,他不处理业务,他去协调这些子的进程,这个worker进程在启动这个N之后,主进程和子进程全部都启动完成之后。
02:03
接下来呢,就会等待呃,用户的请求接入进来,用户请求接入到我们的系统当中呢,是由worker进程来响应并解析的,它的流程是这样的啊,这个worker呢,已经获取了这个配置文件,也就是他知道用户请求,呃,我能不能完成,也就是他请求的这个位置,呃,他的这个目录,或者说他这个文件我能不能找得着?呃,他请求打过来接,接收之后他会去解析用户这个请求,解析请求呢,会发现他想要的是呃斜杠,也就是根号下根目录下的index这个目录,Worker这个紫禁城呢会读取。看目录下的这个N点,看这配置文件里边就写了,呃,它的这个主目录,站点的主目录在哪,或者说它有几个站点,当前呢,我们就只有一个站点,这个配置文件里边其实写的就是一个静态的,呃,文件存储的位置就在这HTML这个目录下,那么我这worker进程呢,就会从这HTML这个目录下去找这个index.html,也就和我们刚刚看的这个目录结构就对上了,它就从这指引过去找到这个目录之后呢,再去加载它的这个默认的这个页面index.htl。
03:12
啊,这是一个基本的这个请求的流程,简单给大家总结一下啊,NG呢,在启动之后,它不只是会启动一个进程啊,它是多进程同时运行的这种模式,是由主进程folk出来的这种子进程啊,它不已经不单单是多线程了,是多进程。由多个进程呢,同时来完成用户的请求,主的这个进程,Master进程负责协调子进程,比如说呃,它的这个配置文件更改了,我们去reload一下,他会把呃,我们这个worker的这个进程进程呢,当前进程呢,呃把它给杀掉,在杀掉之前呢,会让他呃留有一段时间呢,去完成之前的用户的一些请求啊,并且明确的告诉他不允许再去接收新的请求了啊,然后当把所有的任务完成之后呢,这个worker进程就被杀掉了,新的worker进程的去读取新的配置文件,这个配置文件的校验是由master进程进程来完成的,这是它主要的这个工作流程啊,Worker进程去读取这个配置文件,去寻找具体的文件啊。
我来说两句