4

現在動作しているニス3.xxサーバーがあります。ワニスは私のサイトのログインページをキャッシュしています。

www.mysite.com/staff

ただし、スタッフのリンクによってはURLが異なる場合があります。

www.mysite.com/staff/index.php?/Tickets/Ticket/View/222200

私のワニス設定ファイルは、スタッフページのキャッシュを除外するように設定されていますが、ログインページをキャッシュしており、ワニスを再起動してキャッシュをクリアするまでログインしないため、機能していません。

sub vcl_recv {
    # Allow purge only from internal users
    if (req.request == "PURGE") {
        if (!client.ip ~ internal_net) {
            error 405 "Not allowed.";
        }
        return (lookup);

    # Exclude the following
    if (req.url ~ "^/login\.php" ||
      req.url ~ "^/search\.php" ||
      req.url ~ "^/admin(.*)" ||
      req.url ~ "^/admin(.*)" ||
      req.url ~ "^/search(.*)" ||
      req.url ~ "^/visitor(.*)" ||
      req.url ~ "^/staff(.*)" ||
      req.url ~ "^/staff\.php"
    )  {
        return(pass);

    }

    if (req.http.cookie ~ "vb(.*)" ||
        req.http.cookie ~ "bb(.*)" ||
        req.http.cookie ~ "SWIFT_(.*)" ||
        req.url ~ "\?(.*\&)?s=[a-fA-F0-9]{32}(\&|$)" ||
        req.http.cookie ~ "bb_password") {

        return(pass);
    } else {
        unset req.http.cookie;
    }
}

ディレクトリ全体をキャッシュから除外する別の方法はありますか?IE:その後のサフィックスに関係なく、/staffからのすべてをキャッシュしてはなりません

4

1 に答える 1

3

除外は、実装した方法で完全に機能するはずです。ただし、貼り付けたコードが実際のVCLである場合は、PURGEセクションにopen if()ステートメントがあります。

    sub vcl_recv {
        # Allow purge only from internal users
        if (req.request == "PURGE") {
                if (!client.ip ~ internal_net) {
                        error 405 "Not allowed.";
                }
                return (lookup);

# Exclude the following

読む必要があります

    sub vcl_recv {
        # Allow purge only from internal users
        if (req.request == "PURGE") {
                if (!client.ip ~ internal_net) {
                        error 405 "Not allowed.";
                }
                return (lookup);
        }

# Exclude the following

ただし、ワニスは無効なVCLを受け入れるべきではないため、実際のVCLにエラーが存在しない場合は、VCL全体で質問を更新してください。

于 2012-11-15T10:59:07.230 に答える