Vary header
の内容が冗長性のあるときがある.
例えばこんな感じ Vary: User-Agent, Accept-Encoding, User-Agent
とか.
こういうのを Vary: User-Agent, Accept-Encoding
か Vary: Accept-Encoding, User-Agent
したい.
かぶってるのを消して追加してしまえば良い.
sub vcl_fetch {
if (beresp.http.Vary ~ ".*User-Agent.*User-Agent.*") {
set beresp.http.Vary = regsuball(beresp.http.Vary, "(,\s*)?User-Agent", "");
set beresp.http.Vary = regsuball(beresp.http.Vary, "^(\s)?(,(\s+)?)+", "");
}
if (bresp.http.Vary ~ "^(\s)*$") {
set bresp.http.Vary = "User-Agent";
} else {
set bresp.http.Vary = bresp.http.Vary + ", User-Agent";
}
}