jdare / acetone
Laravel4软件包,用于清除和禁止Varnish中的缓存项
Requires
- php: >=5.3.0
- guzzle/guzzle: 3.7.*
- illuminate/support: 4.x
This package is not auto-updated.
Last update: 2024-09-23 15:35:56 UTC
README
Laravel4软件包,用于清除、刷新和禁止Varnish中的缓存项
使用像varnish这样的网络加速器来提高您的Web应用程序性能已经成为一种常见的做法。这个小包旨在解决动态数据生成网站中缓存过期的难题。
安装
首先,将以下内容添加到您的 composer.json
"require": {
"jdare/acetone": "dev-master"
}
运行composer更新 composer update
将其添加到Laravel的提供者列表中 /app/app.php
'providers' => array(
...
'JDare\Acetone\AcetoneServiceProvider',
),
使用 php artisan config:publish jdare/acetone 发布配置文件
配置
打开新创建的配置文件 app/config/packages/jdare/acetone/config.php
可配置的选项有
- 服务器地址
- 强制异常
- 禁止URL头
每个选项的文档都包含在文件中。
用法
请注意:所有这些函数都假定某种标准的VCL设置用于清除/刷新/禁止。请参阅文档文件夹以了解Varnish如何解释这些请求的参考。
有关清除、刷新和禁止之间的区别,请参阅Varnish文档。
##清除和刷新
function someAction()
{
//update some information in a template or database
Acetone::purge("/post/my-updated-post"); //Removed old version from Varnish
//Alternatively use Acetone::refresh("/post/my-updated-post") if it suits your caching needs better.
}
当您需要使缓存无效时,您可以提供要删除的URL作为Acetone函数的参数。以下是一些示例用法
清除和刷新都将接受URL数组,但请注意,每个URL都需要对Varnish的单独请求。这可能会导致很大的开销,并且可能会大大增加您的响应时间。
为了更好地使大量URL无效,请使用禁止或禁止多个
##禁止和禁止多个
function someAction()
{
//update some information in a template or database
Acetone::ban("^/post", true); //will remove any URL's matching "/post(.*)"
}
如果需要,禁止将与清除和刷新以相同的方式工作,但它也可以接受一个可选参数,使其匹配正则表达式字符串而不是URL。
Acetone::banMany("/post"); //will ban any URL starting with /post
有一个名为“banMany”的辅助函数可用于批量禁止,例如
由于Varnish的模式匹配,禁止和禁止多个是删除大量URL的更有效的方法,而不是对每个URL进行单个请求。
常见问题解答
清除返回404异常。
客户端错误响应 [状态码] 404 [原因短语] 不在缓存 [url] *URL*