目次

キャッシュ削除

公式:https://www.varnish-cache.org/docs/4.0/users-guide/purging.html?highlight=ban

VCLに設定追加

method「PURGE」で対象URLにアクセスすると、対象URLのキャッシュが削除できる。

# vi /etc/varnish/default.vcl
acl purge {
    "localhost";
    "192.168.24.0"/24;
}

sub vcl_recv {
    # allow PURGE from localhost and 192.168.24...
    if (req.method == "PURGE") {
        if (client.ip !~ purge) {
            return(synth(403, "Not allowed"));
        }
        ban("obj.http.x-url ~ " + req.url); # Assumes req.url is a regex. This might be a bit too simple
    }
}

sub vcl_backend_response {
    set beresp.http.x-url = bereq.url;
}

sub vcl_deliver {
    unset resp.http.x-url; # Optional
}

ドメイン配下をまとめて削除

# curl -X PURGE http://test.example.com

特定のURLを削除

# curl -X PURGE http://test.example.com/static/___test___/index.html