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

目录
相关文章
|
1月前
|
缓存 安全 UED
网站图片缓存设置不当可能会导致哪些问题?
【10月更文挑战第18天】网站图片缓存的合理设置至关重要,需要综合考虑图片的性质、更新频率、用户体验、服务器性能等多方面因素,以避免出现上述各种问题,确保网站的正常运行和用户信息的安全。
|
1月前
|
缓存 监控 定位技术
|
4月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
66 2
|
4月前
|
缓存 Java Spring
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
123 1
|
1月前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
4月前
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
|
4月前
|
敏捷开发 缓存 测试技术
阿里云云效产品使用合集之缓存怎么设置
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
存储 缓存 监控
网站的图片资源是否需要设置缓存?
【10月更文挑战第18天】网站的图片资源一般是需要设置缓存的,但要根据图片的具体特点和网站的需求,合理设置缓存时间和缓存策略,在提高网站性能和用户体验的同时,确保用户能够获取到准确、及时的图片信息。
|
1月前
|
Web App开发 缓存 UED
如何设置浏览器的缓存策略?
【10月更文挑战第23天】通过合理地设置浏览器的缓存策略,可以在提高网页性能、减少网络流量的同时,确保用户能够获取到最新的内容,从而提升用户体验和网站的性能优化效果。
92 4
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
478 37