00:01
大家好,欢迎大家继续收看上硅谷的Linux预算视频,我是刘川老师。那我们本节课呢,来给大家讲一个网络服务方向阿帕奇优化相关的一个面试题,那首先呢,我们来看一下对应的面试题目。请写出呢,工作中常见的阿帕奇优化策略,那这个其实是一个相对比较宽泛的这么一个题目,那首先呢,我们来给这个题目做一个啊分类,它属于这种优化类题目,那其次呢,对应的这个题目其实考察了我们对服务器优化的两个方向,一个是安全方向,一个是效率方向。我们整个的这种,呃。服务器的管理员或者说运营工程师在进行对服务器优化的时候啊。所优先考虑的一定是服务器的安全,其次才是效率啊。因为如果你主要考虑效率的话,你的服务器不够安全,那你可能之前做的数据都白做了,数据都丢了,或者数据都被窃取了,被破坏了,那肯定是得不偿失的。在优先考虑安全的情况下,去提高对应的效率,这才是我们优化的一个什么。
01:07
必要的一个过程,OK。这个地方呢,我给大家呃,列举了几个生产环境中比较常见的啊。优化策略,也就是说优化知识点,那大家以后去面试的时候呢,可以参照着我给大家提出来的一点去回答,或者说去填写,当然如果说呃,这个你生产环境中啊,有更合适的优化策略也可以写在上面,因为优化这个东西它没有一个特别固定的方向或答案。只要适合你目前的需求,那这就是一条符合条件的优化策略,注意是只要符合你的需求,这就是一条符合条件的优化策略,OK。好了,我们来看一下第一个。大家都知道啊,我们所有的服务在运行过程中都会产生一些相应的信息,比如说日志信息,那对于阿帕奇这种服务来说呢,它会产生两类日志,其中第一类呢,叫做。
02:06
访问日志第二类呢,叫做错误日志,那一般情况下我们的访问日志称为叫a access log。另外一种呢,叫aerallo。那两种日志呢,分别记录了不同的内容,关于access log,它记录的是用户的访问记录,注意是用户的访问记录。这个访问既包含访问成功了的,也包含访问失败了的,也包含我们之前诶讲过的那个重写的记录,OK。那至于错误日志呢,它所记录的是我们阿帕奇这个服务运行启动等等一些报错的信息,OK,所以说当我们去对应的查看或者说保存日志信息的时候,要有针对性的去找两类不同的日志。
03:03
那日志这个东西呢,尤其是我们这一类访问日志啊,访问access log这一类日志,它呢,日志里边记录的内容啊。非常详细。这就会导致如果你的服务器的。访问量非常大啊,访问量非常大,那你的日志的生成速度和最终生成的日志的体积就会非常大,非常快。我们呢,就有必要提前考虑到。如果说对应我们的日志体积过大,我们应该怎么处理?那其实呢,这个事儿呢,我之前是遇到过的。之前啊,在我那个公司里有一台不太起眼的小的服务器,这台服务器呢,只是一个产品页面展示的这么一台服务器,它并不是什么交易类的那种服务器,而且它的访问量不高,但关键问题是没有对这个日志服务器。没有对这个服务器的日志做一个合理的规划,他已经好几年的时间没有去做过这个里边的这种日志的管理和这种整理了,导致呢,突然有一天啊,这个服务器出现了故障,出现了故障。
04:11
然后呢,我想去查看一下日志,看看这个日志里边有哪些有用的信息来帮助去排查这个错误,但是我突然发现这个日志打不开,为什么?这个日志的大小已经上了GB了,已经十几个GB了,那这个时候大家发现一个问题。当一个文件特别大的时候,你打开会非常困难。这个呀,大家应该在这种我们。的这种个人生活中应该有所体会啊,比如说呃,你可能会在你的个人电脑上打开一些word文档啊,或者说T文档,当这个文档一旦超过十几兆的时候,这个文档打开就要需要花一定的时间才能够打得开,因为它要干嘛呀,它要解码并且排版到对应的显示器上,才能够正确的显示所有的文字和格式。
05:00
同样的这个东西对于Linux服务器里边而言的文件也是一样的。我们都要对。这个日志文件里边的内容进行一个排版和解码,所以这会造成大文件打不开,那怎么办呢?我们只能做事后诸葛亮,当一个文件过大的时候。就是当产生了的日志文件过大了之后。我们。对其做什么?做文件切割啊,做文件切割,那当然刚才我提到的是事后诸葛亮,当然我们也可以做事前诸葛亮,那就是我们可以事先就给他规划好,当我们这个日志符合什么条件的时候,他就自动变成一个新的日志文件,而不再是每次都保存到同一个文件里边。那首先啊,在做这个事之前,我们先去看一下对应的阿帕奇的日志文件所在的位置,以及对应的阿帕奇的日志文件的样子,OK。首先呢,连接上我们的这个服务器。
06:03
然后呢,我们把对应的这个阿尔法七服务安装一下。那叫HTPD安装之后呢,记得启动阿帕奇服务,并且呢,我们要使用客户端去。访问测试一下,然后以让它生成一部分这个日志内容,OK,那我们来service httpd start一下。启动成功之后呢,我们找我们的这个对应的客户端来对这个对应的这个服务器进行一个访问,比如说我们通过我们的浏览器。开启一个新的终端,然后使用192。幺九二点幺六八点。88.10来访问一下,OK。下这个时候呢,是我们访问到了它的一个测试页面,那我们可以去修改一下CD的根下的V3WHTL下我们给他写一个对应的这个。个人页面,比如说我们I。
07:01
Hello word。到我们的index.html文件里边,然后这个时候我们再来访问。OK,大家会发现我们访问到了我们自己写的页面,那OK,我们这个地方可以重复的去刷新一下我们对这个网站服务器的一个访问,那同样的我们是使用Windows在访问,那我们其实也可以使用Linux客户端的访问,比如说我们。这个上一。这个视频讲的时候,我们讲到了有一个叫叫curl的命令,我们可以用curl来访问一下192.16 8.8 8.10。这个机器的内容。咱们可以多访问几次,OK,那当然访问结束之后呢,我们去找一下对应的日志。我们现在使用的安装方式也是使用RPM包安装的,那它的日志呢,就默认会存在下的log下。啊,Y的log下,在外lo下会有一个叫HTPD的目录,C到根下的部对。
08:00
C到HTPD的模下。然后大家来看一下,就会有一个叫access杠下划线log和error_log的文件,那么打开对应的access-log文件。大家会发现里边有密密麻麻的很多的信息啊。那这些信息呢,它其实是有规律的啊,有规律的,那我们简单来说一下,对应的呢,一般情况下,我们的日志的第一列信息指的是客户端来源地址。呃,客户端来源地址,然后呢,其次呢,还有客户端访问时间,以及客户端对服务器发起的什么动作,以及使用的什么协议,以及是否成功啊。然后以及使用的是什么浏览器内核。使用的什么操作系统等等等等这些信息,那有了这些信息呢,我们就可以对这些信息进行一个什么测试了,然进行一个测试了,那。我们啊,不用去测这个日志信息了,我们直接来看什么呢?我们直接来看这些日志信息,我们怎么处理才会防止日志文件的过大。
09:04
很简单啊,很简单。回到我们阿帕奇的配置文件目录下。打开我们的A阿帕奇的配置文件,在这里边呢,有这么一条信息啊。有这么一条信息叫custom log啊。对应的这条信息呢,所指定的记录啊。日志文件的内容就是我们的正确日志的,我们可以搜一下啊。找到了我们的这个日志之后,在这个地方。然后在这个地方找到我们这个日志之后,你大家会发现我们这个地方呢,是将我们的日志文件保存到了,诶没有前缀的一个叫logs下的啊。杠log里边,那其实这个地方呢,它保存的位置呢,实际上就是刚才我们所看到的那个位置。
10:00
下的log下的HTD某下的那个。文件,那这个地方呢,这条指令的作用就是为了将阿帕奇的日志保存到一个指定位置,并且保存到一个指定的文件里边,那。我们可以在这个地方借助一条命令来将它每次写入到这个日志文件里边的动作做一定的修改。要做一定的修改,比如说我们这个地方可以借助一个叫root roottate logs的命令。叫t log的命令。那所谓的这个叫root log的命令呢,实际上是我们的阿帕奇啊,自带的一个日制的一个轮替和切割工具啊。我查一下啊。我们可以用which啊。叫。Rotate。Logs。大家发现有一个叫user sb的root logs,而我们可以查一下对应的这个文件来自于哪一个软件包,我可以用RPM-Q。
11:07
来查一下根下的USR下的下的这个叫rotate logs文件。大家会发现这个文件来自于HTPD啊,这个软件包正好就是来自于阿尔法奇这个包啊。所以说我们的这个命令就是阿帕奇的一个命令,那对应的这个命令的功能呢,我说了,它是来进行对日志文件的一个轮替和切割的工具,那结合的方式很简单。默认情况下呀。看一下我们的。一个配置文件里边。默认情况下,它是直接把这个产生了的日志。产生了的日志记录到这个文件里边,但现在呢?我呢,把这个地方改了一下。了一下,怎么感觉呢?在这个地方使用管道符将命令或者说将这个阿帕奇所产生的日志通过管道符转给了这个叫B下的root logs,也就是说我们刚才所看到那个叫user sb的root logs命令。
12:05
然后呢,这由这个命令指定一个记录的位置,比如说记录到了哇,写的logs下的access杠这个地方,为什么格式和刚才不一样呢?是这样的。首先这个地方呢,是借助了root logs这个命令的功能,让我们能够自动的干嘛呀把。日志保存到指定的文件里边,但是这个指定文件由于我们要进行一个切割,所以说文件的文件名肯定是不能一样的,那这个地方我们指定的一个文件名的格式,那就是access杠后边是年。啊。啊,这个地方是年,然后呢是月和日对应的,我们把这个日志文件的名字使用access杠后缀年月日的方式来进行了一个命名,啊,来进行了一个命名,那也就意味着我们的日志文件名永远不会有重复啊,日志文件名永远不会有重复,然后我们把对应的日志文件名,啊把这个创建之后呢,把对应的日志记录到这里边。
13:10
那现在新的问题就是我们把哪些时候的日志记录到哪个日志文件,那后边有一个单位叫86400啊,86400,那对应的这个86400呢,实际上是一个对应的秒数啊,对应的秒数,那么8640正好是一天的时间,也就是说24小时的时间,那我们的这个地方的意思就是我们把当天的日志信息只记录到当天的日志文件里边,当第二天。想新开始之后,我们会创立一个新的日志文件,来记录第二天的日志信息啊,来记录第二天志信息,所以说我们所谓的这种日志轮替和切割,就是通过这种自主创建新的日志文件,然后将日志记录到新的文件的方式,来保证单个日志文件不会。啊,不会过大OK。
14:00
那这个呢,就是阿帕奇的一个日志轮替的这么一个工具。这是一个呃,小的工具啊。嗯,那至于这个命令的位置,包括一些日志文件的位置,这个呢,要看这个对应你安装阿帕奇的一个安装方式,以及呃,如果人为手动安装的。那个安装的指定位置了,所以说呢。很多东西都是可以比较灵活的啊。那我们再来看一下第二种优化方式。第二种文化方式呢,是一个关于错误页面的一个美化过程。那很多时候大家会发现,如果说我们在网站上这个出现了一些报错,那这个时候我们应该怎么来应付呢?是直接让用户看到我们的报错信息吗?啊,或者说直接让用户看到那个报错页面吗?这样是不太好的,起码对于用户的体验度不太好,那有些时候呢,如果我们担心我们的服务器不小心报错了,那这个时候呢,我们可以干嘛呢?人为的将这个错位面定到某一个指定的页面上,比如说我。什么的配置文件里边有error document的一个选项,这个选项的作用就是当客户端访问服务器时出现错误页面时,将用户的这个用户的页面指向为我们网站的首页,那即便是用户报错,也就是跳转回我们的网站首页,而不会显示错误的页面。
15:19
所以说呢,这个时候呢,相当于这个。让用户的体验稍微好一些啊,稍微好一些,那么同样也可以去看一下对应的这个啊。我可以搜一下。搜一下。大家看到这个地方其实已经设置了不少的对应的一个,呃信息啊,当我们遇到500错误页面时,我们应该怎么操作,404的时候怎么操作,那其实我们都可以人为的手动设置,当报哪些错误时,跳转到什么样的页面上。
16:00
这是一个比较好的一个优化方向,OK。提高了我们网站的访问的一个这种用户体验度,OK。那这个相对比较简单,那再一个呢,就是关于屏蔽阿帕奇这个服务器版本的一些相关敏感信息,那这个地方呢,我是给大家写了一个关于呃。源码安装的阿帕奇的时候。源码安装之后,对应它的配置文件的位置,以及配置文件里边。选项的设置,比如说。我们有一个配置文件,叫做HTPD-default com的一个配置文件。这个配置文件呢,是阿帕奇的一个子配置文件,它里边会保存一些server tokens的一些选项,对应的后边会有什么一些po呀,等等等等这些信息啊。那这些信息呢,各自标明了我们服务器中记录了我们阿帕奇的一些信息,比如说阿帕奇的名称啊,版大版本啊,小版本啊,更新版本啊,安装环境啊等等等等这些信息那。
17:02
比如说为什么要对这个配置文件里边记录了我们的服务器的信息做修改呢?是这样的啊。大家应该知道,呃,所有的软件都会遇到一些漏洞啊,一些东西,那这个时候如果一旦某一些漏洞被人找出来了,但是并没有披露到互联网上,那。注意啊,大家一定要注意,并不是所有的漏洞都是公布出来的。很多漏洞可能是有人发现之后,利用这个漏洞占用占取了好多便宜之后才对外公布的啊。那这个时候如果某个漏洞呢,这个被某人获取到之后,发现正好你这个版本有这个漏洞。他就可直接对针对你这个漏洞来入侵你的服务器了,所以说呢,我们很多时候可以去修改服务器的这些信息,以免别人直接知道服务器的版本。而利用对应版本的漏洞来对服务器发起一个对应的一个破坏和攻击,那这也是一个相对比较好的一个方式,那同样对应的这个选项呢,在我们的服务器当中其实也是有的,我们可以。
18:04
Server。如果需要其他选项,我们可以自己来设置一些其他的选项来。修改掉我们服务器的一些对应版本信息,OK。那这是一个关于如何去屏蔽掉阿帕奇版本啊。敏感信息的一个方式。那下一个呢,是关于呃。缓存的一个这种。这种设置方案了,那涉及到缓存呢,其实呃,最终的目的就是为了提高我们的一个处理效率啊,用户的体验啊。用户的体验等等,这些东西节省我们消耗的资源等等。这个呢?啊,我们是针对的某一网站当中的一些什么,一些特定的指定的文件来进行缓存,而不是所有的文件,为什么呢?因为有一些文件是不能做大量的缓存,比如说视频就没法做缓存。那我们针对做缓存的一般是什么呢?一般指的是一些图片文件和一些小的文本文件那。
19:07
GIF呀,JPG啊,PG等等这些图片文件,CSSJS,就是一些我们的代码,小型代码文件,OK。这些文件我们可以让他来进行一个缓存,那我们所借助的这个模块呢,一定要在我们对应的什么呢?某一个网站的标签里边来声明,比如说我们如果用它是虚拟主机,那就应该在v host里边来声明,这个f Mo来声明调用这个模块。那如果说我们没有虚拟主机,就是默认的那个主机,那我们就在那个默认的位置来添加这个模块。下这个地方呢,我们给大家来看一下啊,其实关于模块的调用,以及模块的一个使用模式,大家应该很清楚了。我们之前啊讲过那个地址重写模块,首先开启开关,其次开始写规则,那下边这些都是规则,只不过呢,这些规则分为两类,一类叫我们人为自定义的模块,另外一类呢,叫做默认规则那。
20:07
那上面这四条呢,分别定义了我们的不同类型的文件的缓存时间,比如说我们GIF的缓存一天啊,JP的缓存24小时啊,PG的缓存24小时,而我们的CSS文件缓存两周啊,两周OK。这些都啊,不是两周,这是两个月吧,OK。那我们这个,呃。我们的这个对应的这些缓存周期都可以人为的去修改和调整。那最终呢,有一个默认的缓存时间,默认缓存零分钟。关于这种模块呢,现在我们的阿帕奇当中呢,其实有很多,这只是其中的一个类型,你像除了缓存之外,还有一类叫做压缩,然后还有量压缩,那压缩的目的呢也很简单,就是为了在传输过程中减少文件的传输次数,以及减少文件的体积大小,以此达到一个可以通过一个进程来传输多个文件,或者通过快速的方式把一个大的文件压缩成小文件之后进行快速传输的这么一种。
21:10
以此来节省我们的带宽和我们的进程的一个资源消耗啊。资源消耗OK,那这是我们的一个缓存的配置,那我们再来看一个。这个呢,其实啊,大家可能生长环境中不太注意,但我告诉你,我之前遇到过类似的一个这样的一个坑,这个坑呢,是因为开发工程师留下的。很简单啊,大家都知道我们很多的网站上都会有一个目录,叫upload目录,这个目录很简单,就是允许用户上传一些文件和资源的一些目录。比如说。呃,你的网站上提供了这个用户注册信息,那肯定会有一个用户的用户头像的这么一个什么专门的一个目录,用来保存用户的头像信息,那假如说我们。Upload就是用来保存用户头像的目录。
22:00
那这个时候我问你。这个目录。我们会对其限制上传的文件类型,但是用户可不可以在上传文件类型之前,提前把文件类型改成我们所需要的类型?比如说他把一个本身是代码类型的文件改成了图片类型的文件,然后模拟这类文件上传到我们的服务器上了。然后呢,他再去访问自己上传来的文件,这个时候你会发现,如果他上传的是代码,很有可能通过访问自己上传的文件。达到了一个什么解析的过程?达到了一个解析的过程,这是一个非常可怕的一个问题。所以说嘛,有些文件。上传之后也不允许当做可执行文件来解析,那我们这个地方是举了一个P2P的一个例子啊,举了一个P2P的例子。当有用户把非法的代码类文件上传到uploads里边之后,即便你通过各种各样的方法上传上来了,我也不允许你解析,那怎么办呢?在想要禁止解析的这个。
23:02
地方声明一个单独的一个权限标签。Director声明,我要对这个目录做一个权限设置。然后中间这些信息呢,都是用来进行用户访问控制的,就是哪些用户可以访问,哪些不可以访问,这个地方是完全放行了,重点在最下面这句话上。让状元在最下面这个画上。这个地方呢,声明了一个功能。它的主要目的就是禁止PP解析,看它的开关是off,比如说不允许PPT进行解析。那只要我们对应的声明这个标签之后,说明了这个标签里的目录之后,这个目录下边就不允许进行任何PP代码的解析,即便你是通过各种花花样把你的PPT传上来,这个目录是仍然不允许解析的,那。以此呢,达到即便有人利用了我们那个上传漏洞,上传上文件来,他也没法利用这个文件进行一个什么执行或者破坏,或者提权的一些操作。
24:00
这就是我们一些,呃。这些给出的一些优化策略,那其中呢,既包含我们安全相关的,又包含我们效率相关的,OK。那我们简单来总结一下啊,我们简单来总结一下。设置阿帕奇的日志的轮替和切割的规则啊,OK,防止日志过大啊,美化错误页面,将错误页面重定向到首页或指令页面。防止别人通过这个获取阿帕奇的版本。来这个。通过一些漏洞来入侵或者破坏我们的服务器,再一个设置服务器的静态缓存,或者设置服务器的一些什么压缩的一些工具,然后来减少对服务器的访问压力,以及啊这个加快我们这个和用户之间的数据传输的一个效率。再一个就是禁止解析某目录下的网页程序,比如upload目录。禁止解析用户通。说一些非法方式上传上来的脚本软件,当然我这个地方画了个点点意思就是优化这个东西还有非常多啊,并不一定只有我说的这些,我说了。
25:04
所谓的优化,指的是适合对应问题的策略,都叫优化。适合对应问题的这种解决方案都叫优化。上都叫油画。所以说呢,呃,你可以把自己日常生活中见到的一些问题,以及这些问题的解决方案都总结起来,变成一个这样的一个优化策略啊,集合方便呢,自己后期遇到类似问题的时候。然后进行一个提前的一个预设,或者说做一个故障解决的一个思考思路。好了,那这个呢,就是关于我们这个阿帕奇优化策略的这么一个答案,那除此之外呢,我们还有一个类似的题目啊。还有一个类似的题目。那这个题目呢,同样也是比较宽泛啊,题目的要求是这样的,有哪些技术可以提高网站的安全和效率,其实啊,这个题目啊,它考察的方向不是特别明确啊。特别明确原因呢,他提出了两点要求,第一个就是安全,第二的效率啊。
26:01
那安全的话,我们首先可能想到就是各种什么杀毒工具啊,防火墙之类的,诶没错,确实这些东西都可以提高安全效率。效率这个东西呢,绝大多数都是什么缓存啊之类的,OK,那刚才我们已经提到了一个缓存了。那接下来我们讲一个工具,这个工具既可以提高我们的网站的安全,又可以提我们的网站的一个效率,OK。那这个东西呢,其实大家应该是啊。都听过的,那就是我们的CDN了,刚才就是我们的CDN了。那这个地方呢,我给大家简单的画了一个CD的一个圆形图啊OK。那假设呢,我们这有个网站服务器,然后呢,中间呢,是一些CDN的一些服务器啊集合啊,在各个城市都有啊。那CDN呢,又又叫做内容分发网络。它呢,主要作用是来帮助我们的网站服务器减轻压力,以及保护我们服务器的真实身份的,OK。
27:04
我们来说一下关于CD的工作原理。供应类很简单啊,我们呢服务器呢,把一些相对变化频率较低啊,频率较低,比如说一些图片文件啊,文本类文件啊,这类文件通过我们的CDN。控制服务器control server,然后把这些内容呢分发到各个城市的。CDN服务器上啊,分发到各个城市的CDN服务器上,然后呢。我们各个城市的用户在进行对网站服务器访问的时候,首先会通过自身的途径找到什么DNS服务器啊,或者自己的后锁文件,找到对应这个服务器的什么一个。域名解析。但是这个时候注意,我说过,我们是有智能DNS的,我们是有智能DNS的,我们的智能DNS首先会把用户的请求解析到另外一个DNS服务器上。
28:02
解析到另外一个DNS。那这个时候当我们解析到另外一个DNS服务器上之后呢,这个请求交由另外这个DNS服务器来进行二次处理,那。这个时候我们的这个DNS服务器,你可以你可以理解为这个新的DNS。这是我们的直接的那个本地S,这是新的DNS。你可以理解为这个新的DNS呢,它是CDN内部的DNS,那CDN内部的DNS,那这个DNS呢,会把我们深圳这个用户的用户请求解析为深圳的CDN机房的IP地址。机,某一台机。那假设呢,这个用户是上海的,这个用户会自动的通过上海的智能电,哎。解析到一个关于上海的CDN的一个。DNS服务器。2DNS服务器,然后上海的这个用户再通过这个上海的CDN的DNS服务器,再解析到上海的CDN服务器上。
29:05
然后以此实现我们的每一个不同城市的用户所访问的网络资源都是就近从自己本城市的CDN机房拿到的资源。而不是直接找到我们的外部服务器所取到的资源。那所取到资源以这种方式达到,每个城式在访问对应同一个网站的网络资源时,发现都很快。下,原因就是我们在各个城市部署了CDN,而各个城市CDN里边的资源都是一模一样的,并且只要我们的外部服务器上进行资源修改,那我们的ctrl server也会同步的对所有的DNS服务器、CDN服务器的资源进行一个修改和同步。以此实现所有的客户端在进行网站访问时都是优先从本地获取啊。优先从本地获取。
30:01
这是我们CDN的一个功能。什么CDN功能,你会发现这种功能实现之后呢,我们的网站就相当于利用CDN做了一个缓存啊。非常大规模的缓存。让所有的客户机访问时都优先访问缓存里边的内容就可以了。所以说极大的提高了我们的服流器的处理效率,以及服务这种用户的体验度。其次呢,还有另外一个好处。它另外的好处就是。所有的客户机的访问对象都不再直接是真实服务器了。就相当于我们把真实服务器什么。保护起来了,所有的用户的请求都被直接扔给了当地的CDN机房那。即便是当我们的服务器受到攻击的时候,所真正受到攻击的也是我们的CDN机房,而不是我们的。真正的外部服务器那?大家会发现,我们有些网站在受到攻击时,可能受到攻击的时,他的某一个城市的森林机房,而其他城市正常访问这个网站,只有某几个城市,只有受到攻击的城市没法仿这个网站,原因很简单,受到攻击的网站的那个。
31:13
城市的CDN可能出现了故障。或者说出现了问题。导致不能。但是其他这个。区域的DCDN还是好的,那其他区域的用户。可以正常的放养到资源。所以说无论是从安全方面来说,还是从效率方面来说,我们的CDN都是一种非常好的这种解决方案啊,或者。说优化策略,那当然,呃,这个生产环境中,我们的网站是一定要做CDN的,当然。规模达到一定情况,你不做CDN也是不行的,这个时候会影响用户的一个。用户体验。好了,那我们的这个关于,嗯。阿帕奇的优化相关的这个内容呢,我们就讲到这个地方了啊。希望大家呢,都能在这个后续的面试中找到一份好的工作。
32:03
下节课再见。
我来说两句