apache - 如何在 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>
知道有什么问题吗?
解决方案
经过几天的头痛,我终于解决了。我正在为 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)
推荐阅读
- facebook - 为什么我的查询结果为空,无法深入了解我的广告?
- c# - 将数据网格中的第 0 列设为粗体
- c - 通过地址(指针)
- javascript - jquery click()不会用greasemonkey触发
- vue.js - 将 HTML 注入 VueJS 模板
- javascript - 如何解决对变量的承诺?
- mysql - MYSQL 存储 JSON - 最好的方法?
- python-3.x - PyQt5 - 在 QAction() 和 menuBar.addMenu() 方法中,“&”代表什么?
- javascript - Attempting JavaScript Snake Game - Snake Tail 被画成碎片;不在一起
- python-3.x - 从配置文件中读取的 '\r\n' 不等同于 python 的解释或 '\r\n'