家里用的服务器跑网页总感觉慢半拍?尤其是图片多、页面大的时候,加载半天。其实Apache有个缓存模块(mod_cache),打开之后能明显提升访问速度,就像给老家电换个新硬盘,反应立马快起来。
确认模块是否已安装
大多数Linux系统自带Apache,但缓存模块默认可能没启用。先登录服务器,输入下面命令查看有没有加载cache相关的模块:
apache2ctl -M | grep cache
如果看到mod_cache、mod_cache_disk之类的输出,说明模块存在,只是没开。
启用Apache缓存模块
在Ubuntu或Debian系统上,直接用a2enmod命令开启:
a2enmod cache
a2enmod cache_disk
如果是CentOS、Rocky Linux这类系统,得手动编辑配置文件,在/etc/httpd/conf.modules.d/目录下加一行:
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
配置缓存规则
模块开了还不行,得告诉Apache哪些内容可以缓存。打开主配置文件或虚拟主机配置,加入以下设置:
<IfModule mod_cache.c>
CacheQuickHandler off
CachePreserveCase On
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
<CacheEnable disk />
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
CacheIgnoreNoLastMod On
</CacheEnable disk />
</IfModule>
这段的意思是:把网站根路径下的内容缓存到硬盘,有效期一小时起步,最长一天,适合静态资源比如图片、CSS、JS文件。
重启服务生效
改完配置别忘了重启Apache:
systemctl restart apache2
或者CentOS用:
systemctl restart httpd
刷新网页试试,第二次打开应该快了不少。可以用浏览器开发者工具看响应头,如果有X-Cache: HIT,说明缓存成功了。
这招对家用NAS搭的博客、图床特别实用,省得每次访问都从磁盘读一遍。就跟路由器开了加速后视频不卡一样,小改动,大效果。