4

ニスのバックエンド応答から特定の Cookie を削除する必要があります。

私のバックエンド サーバーは、私が必要としない大量の Cookie を設定しますが、残念ながら私は制御できません。そのため、それらを削除したいと考えています。

ただし、いくつかの Cookie が必要なので、名前で Cookie を削除できるようにしたいと考えています。

たとえば、bad_cookie という名前の Cookie の名前を変更したいのですが、同時に good_cookie という名前の Cookie を保持したいとします。

特定のリクエスト Cookie の削除に関する多くのリソースを見つけましたが、バックエンド レスポンス Cookie の削除に関するリソースはありません。

これはワニスで可能ですか?

4

1 に答える 1

5

名前を変更したい場合は、次のようになると思います。

sub vcl_fetch {
    #renamed after receiving the backend
    set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, "bad_cookie", "good_cookie"); 
    set beresp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "good_cookie"); }
}

sub vcl_deliver {
    #renamed before sending the client
    set resp.http.set-cookie = regsuball(beresp.http.set-cookie, "bad_cookie", "good_cookie"); 
    set resp.http.cookie = regsuball(beresp.http.cookie, "bad_cookie", "good_cookie"); }
}

すべてのCookieを削除する場合:

sub vcl_fetch {
    #deleted after receiving the backend
    remove beresp.http.set-cookie;
    remove beresp.http.cookie;
}

sub vcl_deliver {
    #deleted before sending the client
    remove resp.http.set-cookie;
    remove resp.http.cookie;
}

beresp.http.set-cookie最初の Set-Cookie ヘッダーのみを読み取ります。一部を削除して残りを使用したい場合: github.com/varnish/libvmod-header **

于 2013-01-03T19:49:31.627 に答える