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

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

今天继续给大家介绍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
1
之后,可以看到Apache已经安装了expires模块,如下所示:

同时,在主配置文件中,也会打开该模块,如下:

接下来,我们需要在主配置文件中,写入如下内容:


ExpiresActive on
ExpiresDefault "access plus 2 month"
ExpiresByType text/html "access plus 1 months"

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

[plus]
1
其中base可以是access、now和modification,acess和now表示时间从现在开始起算,而modification表示时间从最后一次修改之日起算。plus是一个关键字,为一个正整数,表示时间单位,可以是years(年)、months(月)、weeks(周)、days(天)、hours(小时)、minutes(分钟)、seconds(秒)。
完成上述设置后,重启Apache服务,然后访问网站内文件,发现显示如下:

可以看到,在Response头部,有一个Expires字段,显示了Apache服务器指定的缓存时间,可以看出,缓存时间为一个月,我们的配置生效,实验成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122652061

目录
相关文章
|
2月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
40 2
|
2月前
|
缓存 Java Spring
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
|
2月前
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
|
2月前
|
敏捷开发 缓存 测试技术
阿里云云效产品使用合集之缓存怎么设置
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
21天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
176 37
|
24天前
|
缓存 运维 NoSQL
二级缓存架构极致提升系统性能
本文详细阐述了如何通过二级缓存架构设计提升高并发下的系统性能。
|
2月前
|
消息中间件 存储 监控
Django后端架构开发:Celery异步调优,任务队列和调度
Django后端架构开发:Celery异步调优,任务队列和调度
47 1
|
2月前
|
存储 缓存 NoSQL
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
|
2月前
|
缓存 前端开发 CDN
静态资源缓存过期时间的设置
【8月更文挑战第18天】静态资源缓存过期时间的设置
29 1
|
2月前
|
存储 缓存 自然语言处理
下一篇
无影云桌面