Vary header の内容が冗長性のあるときがある.
例えばこんな感じ Vary: User-Agent, Accept-Encoding, User-Agent とか.
こういうのを Vary: User-Agent, Accept-EncodingVary: 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";
  }
}