ostark / upper
Craft 缓存插件 - 支持多个 Edge 缓存
Requires
- craftcms/cms: ^3.0.0
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- phpstan/phpstan: ^0.10.3
This package is auto-updated.
Last update: 2024-05-13 11:31:03 UTC
README
您的 Craft 网站的强力补药
Upper 通过在您的 web 服务器前使用 缓存代理 来显著提高 Craft 的速度。
插件会为您的页面添加必要的 Cache-Control
和 XKEY/Surrogate-Key/Cache-Tag
标头。当控制面板中的条目或部分被更新时,它会负责缓存失效。
如果您需要了解 HTTP 缓存的入门介绍,我强烈推荐阅读 这篇文章。
赞助商
开发在我的业余时间进行,但也包括工作时间。感谢 fortrabbit.com!
如果您需要额外的集成(缓存驱动程序),请随时贡献或 提出问题。
支持的缓存驱动程序
- KeyCDN (CDN/SaaS)
- Fastly (CDN/SaaS)
- Cloudflare (CDN/SaaS)
- 支持 XKEY 的 Varnish(您的代理服务器)
- 模拟(无操作)
安装
- 从您的项目目录中通过 Composer 使用
composer require ostark/upper
安装 - 使用此命令
php craft plugin/install upper
安装插件或在 Craft CP 下的设置 > 插件中安装 - 将在
your-project/config/upper.php
中自动生成新的配置文件。
Fastly 设置
UPPER_DRIVER=fastly
FASTLY_API_TOKEN=<REPLACE-ME>
FASTLY_SERVICE_ID=<REPLACE-ME>
FASTLY_DOMAIN=http://<REPLACE-ME>
KeyCDN 设置
UPPER_DRIVER=keycdn
KEYCDN_API_KEY=<REPLACE-ME>
KEYCDN_ZONE_URL=<REPLACE-ME>.kxcdn.com
KEYCDN_ZONE_ID=<REPLACE-ME>
Cloudflare 设置
UPPER_DRIVER=cloudflare
CLOUDFLARE_API_TOKEN=<REPLACE-ME>
CLOUDFLARE_ZONE_ID=<REPLACE-ME>
CLOUDFLARE_DOMAIN=https://<REPLACE-ME>
默认情况下,Cloudflare 的 CDN 不缓存 HTML 内容。您需要创建一个 缓存级别:缓存所有内容 页面规则以启用“页面”的缓存。
如果您不使用具有本地 Cache-Tag
支持的 Cloudflare 企业版,请确保在 config/upper.php
文件中启用 useLocalTags
(默认值),否则请禁用它。
您可以在 Cloudflare 控制台中生成一个令牌。您希望创建一个具有“区域缓存清除”权限的定制令牌,该权限限制在您希望清除 Cloudflare 缓存的 DNS 区域(s)中。
Varnish 设置
Varnish URL 支持多个服务器,用逗号分隔。例如 http://1.1.1.1,http://2.2.2.2
UPPER_DRIVER=varnish
VARNISH_URL=<REPLACE-ME>
调整
在模板中,您可以完全禁用缓存,如下所示
{% do upper.cache.never() %}
…这是下面内容的缩写
{% header "Cache-Control: private, no-cache" %}
默认情况下,将使用 defaultMaxAge
配置设置来确定设置的缓存持续时间。这可以在模板中重写
{% do upper.cache.for('5 minutes') %}
…这是下面内容的缩写
{% header "Cache-Control: public, s-maxage=300" %}
性能结果
缓存标签头
免责声明
尽管插件名称和一些措辞是故意的,但作者并不美化任何药物滥用。🍻此插件灵感来源于 joshangell/Falcon。