VMOD清洗-Varnish清洗模块

SYNOPSIS

import purge [as name] [from "path"]

INT HARD()

INT SOFT(持续时间ttl、持续时间宽限、持续时间保持)

DESCRIPTION

vmod_purge 包含的函数提供了比 return(purge) 从… vcl_recv{} 。只能从中调用函数 vcl_hit{}vcl_miss{} 它们一般都应该在两者中使用,以确保处理同一对象的所有变体。

EXAMPLE

sub vcl_recv {
    if (req.method == "PURGE") {
        if (client.ip !~ purge_acl) {
            return (synth(405));
        }
        return (hash);
    }
}

sub my_purge {
    set req.http.purged = purge.hard();
    if (req.http.purged == "0") {
        return (synth(404));
    }
    else {
        return (synth(200));
    }
}

sub vcl_hit {
    if (req.method == "PURGE") {
        call my_purge;
    }
}

sub vcl_miss {
    if (req.method == "PURGE") {
        call my_purge;
    }
}

sub vcl_synth {
    if (req.method == "PURGE") {
        if (req.http.purged) {
            set resp.http.purged = req.http.purged;
        }
        return (deliver);
    }
}

INT HARD()

这相当于 return(purge) 但明确地从 vcl_hit{}vcl_miss{} 。它返回被清除的对象的数量。

示例::

set req.http.purged = purge.hard();

仅限于: vcl_hitvcl_miss

INT SOFT(持续时间ttl、持续时间宽限、持续时间保持)

INT soft(DURATION ttl=0, DURATION grace=-1, DURATION keep=-1)

设置 ttlgracekeep

默认情况下, ttl 设置为0,并使用 gracekeep 期间保持不变。为设置负值 gracekeep 经期使它们保持不变。将所有三个参数设置为 0 相当于一场艰难的清洗。它返回软清除对象的数量。

仅限于: vcl_hitvcl_miss

另请参阅