zl程序教程

您现在的位置是:首页 >  前端

当前栏目

LAMP架构调优(五)——网页缓存设置

网页架构缓存 设置 调优 Lamp
2023-09-14 09:01:44 时间

今天继续给大家介绍Linux运维的相关知识,本文主要内容是Apache的网页缓存时间设置。

一、网页缓存目的

在网站中,一些静态的资源,比如图片、视频等,在发布之后通常不会经常修改。因此,可以采用以下机制:当客户端第一次访问这些资源后,将资源下载到本地,当需要再次访问这些资源时,就直接从本地加载而不是从服务端下载。这样一来,客户访问速度会大大增加,企业网络带宽也会大大减小。
对于一个公司而言,对缓存的优化是至关重要的,不同的业务类型,对于缓存的类型和时间各不相同。
缓存有着很多好处,但是,缓存同样存在一些弊端,主要是当服务端更新内容后,客户端有可能读取缓存文件而不是服务器的文件而导致看到的内容是陈旧的。因此,可以通过缩短缓存时间和对缓存对象改名的方式来解决缓存文件更新不及时这个问题。
对于服务端而言,通过header报文来指定文件在浏览器中的访问时间,但是对于浏览器而言,有时也会进行手动删除缓存,以达到特定的效果。

二、Apache设置网页缓存实战

Apache的mod_expires模块支持缓存设置功能。因此,想要开启Apache服务器的缓存,则必须开启和使用该模块。
如果是在编译的时候安装expires模块,则只需要在预编译时添加参数–enable-expires,如果是采用DSO方式安装expires模块,则需要使用apxs命令安装expires模块。一般而言,该模块位于Apache源文件下modules/metadata目录,因此,需要执行命令:

/usr/local/httpd/bin/apxs -a -c -i /opt/httpd-2.4.16/modules/metadata/mod_expires.c

之后,可以看到Apache已经安装了expires模块,如下所示:
在这里插入图片描述
同时,在主配置文件中,也会打开该模块,如下:
在这里插入图片描述
接下来,我们需要在主配置文件中,写入如下内容:

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 2 month"
    ExpiresByType text/html "access plus 1 months"
</IfModule>

其中,ExpiresActive参数表示开启网页缓存功能,ExpireDefault参数表示设置默认存储的时间,ExpireByType参数表示设置指定MIME类型的文件缓存时间。
上述参数ExpireDefault和ExpireByType后面跟着的时间格式如下:

<base> [plus] <num> <type>

其中base可以是access、now和modification,acess和now表示时间从现在开始起算,而modification表示时间从最后一次修改之日起算。plus是一个关键字,<num>为一个正整数,<type>表示时间单位,可以是years(年)、months(月)、weeks(周)、days(天)、hours(小时)、minutes(分钟)、seconds(秒)。
完成上述设置后,重启Apache服务,然后访问网站内文件,发现显示如下:
在这里插入图片描述
可以看到,在Response头部,有一个Expires字段,显示了Apache服务器指定的缓存时间,可以看出,缓存时间为一个月,我们的配置生效,实验成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200