首页 > 解决方案 > 如何在 Apache 服务器上正确设置缓存

问题描述

我已按照教程在我的 Droplet 上设置浏览器缓存: https ://www.digitalocean.com/community/tutorials/how-to-configure-apache-content-caching-on-ubuntu-14-04

我现在想要完成的是为所有文件设置长达一年的缓存,但稍后将对 HTML 等文件进行微调以缩短到期时间。

我已经检查了我的缓存文件夹,它正在增长: ls -la /var/cache/apache2/mod_cache_disk/

但问题是 Google Page Insight 和其他页面速度测试仍然报告说,即使在对服务器应用了 2 天的缓存后,也没有对我的文件应用缓存策略。

我还检查了边缘开发工具,大多数文件没有显示缓存控制作为响应,并且对于显示的一小部分文件,它设置为无缓存。

我在我的域的虚拟主机文件中包含了以下几行,并在我的服务器上启用了缓存:

CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie

<Location />
    CacheEnable disk
    CacheHeader on
    CacheDefaultExpire 600
    CacheMaxExpire 86400
    CacheLastModifiedFactor 0.5

    ExpiresActive on
    ExpiresDefault A31536000

    Header set Cache-Control public
    Header merge Cache-Control max-age=31536000
    FileETag All
</Location>

知道有什么问题吗?

标签: apachecachingdigital-oceanbrowser-cache

解决方案


经过几天的头痛,我终于解决了。我正在为 HTTP 编辑虚拟主机,而不是为 HTTPS/SLL 编辑虚拟主机。如果任何机构遇到此问题,只需在您的服务器上搜索活动的虚拟主机文件,如下所示:

$ apachectl -S VirtualHost 配置:: 443 de ***.com (/etc/apache2/sites-enabled/000-default-le-ssl.conf:2) :80 de ***.com (/etc/apache2 /sites-enabled/000-default.conf:1)


推荐阅读