jdare/acetone

该软件包最新版本(1.0.0)没有可用的许可证信息。

Laravel4软件包,用于清除和禁止Varnish中的缓存项

1.0.0 2014-03-24 01:16 UTC

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*