00:02
在上节课我们通过N这个词配置了负载均衡,实现出了当我们发送一次请求的时候,我们把请求平均分担到不同的服务器中,这是一种负载均衡的效果,包括咱也讲到了NG中提供了几种。负载均衡的分配的方式。然后这节课我们继续往下进行配置,我们主要讲解N这个词的另外一个配置实力,叫做动静分离。那我们在里边写一下。N这个词的配置实例。在里边我们讲到一个内容叫做动静分离,这是我们要说到的,那首先我们先解释一下什么是动静分离,我们来做一个解释,解释之后我们再用具体的N这个进行相关的配置。
01:06
那首先呢,先看一下我文档中有这么一段话,这段话是解释了动静分离,它具体是什么,那咱们先读一遍,然后我给大家画张图,咱们来详细分析一下。这里写到。N这个词的动静分离,简单说就是把我们的动态跟静态请求分开,而不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说,应该是把动态请求跟静态请求分开,可以理解成是使用NEX呢处理静态页面,而使用tomcat处理动态页面。动静分离从目前实验角度来讲,我这里边列出了有这么两种方式,也是目前啊,大体上它有两种方式,那这句话解释了什么叫动静分离。
02:05
也就是说呢,给大家来画一下。我们现在,比如说我们现在啊,发送这么一个请求,按照咱们说的请求,首先他要先到什么地方。是不是咱们的。NEX里边这就是我们的NEX,而NEX中做什么呢?它里边要给你请求是发送,是一个动态请求还是一个静态请求?那什么叫动态请求?说的通俗点,比如说我们要通过Tom KT,然后去查询数据库,从数据库里边返回我们内容,那这个过程我们直接让他就转发到tomcat中,通过tomcat来做处理。那这种请求就叫做动态资源请求。也就是说的通俗点,咱们可以通过tomcat,然后用我们的操作中请用我们的数据库实现,这叫动态,当然我们的操作中还有一些叫静态请求,那什么叫静态请求呢?举个例子。
03:16
比如说我们现在。请求中啊,要需要得到一个图片的一个地址,或者说去请求一个HTML文件,那这种请求就叫做静态请求,比如说再样式,那这个过程中怎么做NEX就把我们的这里边的。静态请求,让他去指向我里边一个静态资源服务器中,比如说我们在这个位置有一个静态资源服务器。画一下静态资源服务器,而里边有我们的一些静态资源,比如说HTML页面,比如说CSS样式,比如说这个图片的这些内容,那我们通过N这个,让这个请求直接去请求我们的静态资源服务器,这个叫静态请求,而动态请求去请求我们的comcat,这个过程就叫做动静分离。
04:18
也就是把我们的动态请求和静态请求通过index给它分离出来,让他们不同请求去访问不同内容,动态去请求tomcat,静态请求我们的静态资源服务器,这个就叫动静分离。所以咱把它做了一个简单的一个说明,大家把这个先给他知道。然后这个动静分离我在文档中也列出来,目前来讲啊,大体上有这么两种实验方式,咱们看这两种,其实我们目前用的比较多的应该就是第一种方式,刚才我画的这个应该就是第一种方式,那大家看第一种方式怎么做到的,这里写到。
05:05
它是。纯粹的把静态文件独立成单独的域名,然后放到一个独立服务器中,也是目前比较主流推崇的方案。也就是说。静态资源跟tomcat是分离出来的,我静态资源是单独部署的,Tomcat又是单独部署的,当我访问静态资源的时候,通过N这个把你的静态请求就给你转发到静态资源服务器中,这个过程就是咱们的第一种方案,一会儿咱们配置也是用这种方案进行实现。把我们的静态资源独立放到一个服务器中,通过N这个转发到这个位置中来。另外还有一种方式,这种方式用的相对少点,它的方法就是动态跟静态文件混合。
06:01
在一起发布,而通过N这个词把它们分离开来,这也是一种方式,所以大家把这个要理解就是什么叫动静分离,这里边我也做了个说明,而这个动静分离我们还要明确它的目的是什么。就是咱们为什么要动静分离?首先就是肯定是为了提高我们的访问的效率,让我们这个请求更高效动态,就专门访问Tom KD。静态专门访问我们的静态资源服务器。这个是咱们说到的这么一个概念,然后里边呢,我还列了这么一部分,这一部分我们也看一下。就是通过这个location。在咱们in中有这个配置,它可以指定你不同的后缀名,实现不同的转发请求,然后通过这个参数。这什么意思?
07:02
是不是有过期或者有效的意思,通过它能设置叫做浏览器的缓存的过期时间,也就是说这个参数主要设置浏览器缓存的,那这是什么意思?举个例子。比如现在我设置这个参数之后,假如说它的值叫3D。那3D就表示三天之内你访问这个地址,它就不需要再去请求服务器,而直接通过浏览器的缓存处理,也就是说在这过程中通过浏览器产生缓存。但是它有一个特点,就是会对比服务器的文件是否发生变化。如果文件发生变化,那它肯定会重新从服务器下载,如果你服务器中没有变化,它会返一个状态码,叫304,也就是浏览器的缓存,这个也是为了提高我们的访问效率,通过浏览器产生缓存的这么一个效果。
08:05
然后我的文档中呢,也有一个例子,我们来具体看一下,就是关于它的具体定义,这里写到是给一个资源设定一个过期时间,也就是在这时间之内有效,超过这个时间它就失效了。而具体的做法就是这个过程中呢,它在浏览器中产生了缓存,我们不需要去服务端进行校验,而直接通过浏览器自身确认它是否过期就可以了,所以这过程中呢,不会产生额外的流量,因为都是去请求我们的浏览器里面的缓存。但是呢,这种方式也有它的一些不适合地方,比如说你的这些资源啊,经常发生变化,或者说经常进行更新,那这个时候就不建议用这缓存,因为它每次更新还需要再去启用服务器,那用缓存就不太合适了,如果你的这个静态资源,它的内容是比较固定的,或者说。
09:10
很少进行修改,那咱们用这种方式应该是比较合适的,然后最后写到这里边设置一个叫3D。然后这个3D就表示在三天之内访问这个地址,他发的一个请求,对比服务器该文件最后更新时间有没有变化,比如说我现在浏览器中呢,我这个更新时间比如说是10:30,然后我对于服务器中,如果服务器中的时间不是10:30,那这里边我就。会怎么做呢?它里边就会从服务器中重新进行下载,然后反应状态码,但如果发现服务器的时间跟当天时间相比没有变化,那他就不会去请求服务器,而是直接返回一个状态码。叫做304。
10:01
而这状态嘛,是为了产生一个缓存的一个效果,所以这个就是动静分离的一个特点,咱们把这个概念给大家做一个说明,也就是我在笔记中画的这张图,它就说明了什么叫动静分离。然后里边有这段话,我把这段话我们也复制过来,因为它是在浏览器中产生的缓存,它的目的也是为了提高我们这个访问的一个效率。好,所以这样的话,咱们把这个概念我们就最终说完了,什么叫动静分离。然后这个概念说完之后,下面呢,咱们就可以用N这个词具体来进行一下这个配置,那配置之前咱们先进行一些。准备工作,我们先准备一下。那咱们看这准备工作该怎么去做,因为啊,我们要仿一个静态资源,所以首先呢,我先在我的另一个系统中,我们先准备一些静态的资源,为了咱们一会儿进行访问。
11:19
在Linux系统中准备一些静态的资源,用于咱们一会儿进行访问。那我们就来准备一下,首先呢,咱们打开我们这个例会系统,那比如说为了方便,我现在呢,在根目录下,我就建个文件夹,然后里边放一些静态资源,那我们来创建。MKDR,比如说这个文件夹,我就叫这个date。咱们把它创建,然后创建之后在data里边,我再来建两个文件夹,那咱们一会儿访问第一个文件夹,比如我就叫3W,然后一会儿里边放一些静态资源,比如说HT文件,我再建固件夹,比如叫这个。
12:11
Image在里边一会儿我们放一些图片的内容,这是我们做的一些最基本的准备工作,也就是说在里边咱们建了文件夹,一个隐秘值,一个3W,那我们下面在里边咱放一些内容。这些内容我就直接用工具咱们拖进来了,在3W中,比如说我们放一个HTM页面。假如说就是这个页面。把页面内容咱稍微改一下。比如说我们就叫测试HTML这个静态资源就叫这个名字。然后把这个文件咱们拖到这个3W这个文件夹中,咱找到A点。也填完这是第一个,然后第二个在隐秘值里边,咱们给它放个图片,假如说我就放这个零一.jpg把这个图片咱给它就放进去。
13:13
然后咱们来看一下隐秘的里边有个图片。在3W里边有一个H文件,这样的话,咱们把这个最基本的资源我们就准备出来了。就是里边的。这么一个。基本的结构。会把这个截过来,然后做到之后呢,一会儿啊,我们想实现这个效果,就是我在浏览器中输入一个地址,就是咱们N这的地址,它进行的是八零端口,比如说我访问这个3W a.atl能访问到我们的这个文件。如果说访问这个就是隐秘值里边的零一.jpg那能访问到这个图片,但是这个过程咱们不是通过Tom KD访问,而是通过index这个静态资源的这种配置给它访问到。
14:12
这个是咱们要做的这么一个效果,就是通过N这个做它的静态资源配置,让N这呢指向我们的静态资源,然后它能够反过来,这是我们要实现出来的一个基本效果。好,所以这样的话。咱们这些。准备工作应该就做到了。
我来说两句