0

CURL を使用してワニス内のオブジェクトを消去できません

CURL コマンド: curl -X PURGE localhost/public/stylesheets/main.css -v curl コマンドが 200 OK 応答を返しています。オブジェクトはパージされていません

config file in VARNISH : default.vcl
sub vcl_miss {
  if (req.request == "PURGE") {
    purge;
    error 404 "Not in cache.";
  }
   if (req.http.user-agent ~ "spider") {
    error 503 "Not presently in cache";
    }
return (fetch);
}

sub vcl_hit {
  if (req.request == "PURGE") {
    purge;
    error 200 "Purged.";
  }
     return (deliver);
}


sub vlc.recv{
if (req.request == "PURGE") {
    if (!client.ip ~ purge) {
      error 405 "Not allowed.";
    }
    return(lookup);
  }
}

親切に、これについて助けてください

4

1 に答える 1

0

vcl_recv で「PURGE」リクエストを有効にしてから、recv で直接パージを実行し、存在するかどうかを無視します。これはパージ プロセスとは関係ありません

if (client.ip ~ purge && req.request == "PURGE" ){ purge; error 999; return(error)}
if (req.request != "GET" &&
  req.request != "HEAD" &&
  req.request != "PUT" &&
  req.request != "POST" &&
  req.request != "TRACE" &&
  req.request != "OPTIONS" &&
  req.request != "DELETE") {
    /* Non-RFC2616 or CONNECT which is weird. */
    set req.http.xpass="PASS_header";
    return (pass);
}

多くの場合、ワニスは実際のリクエスター IP (Amazon ロード バランサーなど、プロバイダーからの非透過的なプロキシ) を受信しないため、client.ip ACL を忘れて、パージに一致するように req.http.x-forwarded-for で正規表現を実行します。許可されたips...安全ではありません...しかし、唯一の単純な代替手段かもしれません

下手な英語でごめんなさい

于 2014-01-28T17:07:25.157 に答える