Php 如何使Varnish 4缓存所有内容,而不考虑缓存控制头和cookie

Php 如何使Varnish 4缓存所有内容,而不考虑缓存控制头和cookie,php,varnish,varnish-vcl,Php,Varnish,Varnish Vcl,简而言之,我正在努力 if (beresp.ttl < 120s) { set beresp.ttl = 120s; unset beresp.http.Cache-Control; } 请注意,每当有人输入url和地址栏并点击enter键时,Chrome默认将缓存控制设置为max age=0。cookie是通过session_start的默认php cookie,也是一个自定义会话cookie 现在我想忽略cookies和缓存控制头 以

简而言之,我正在努力

   if (beresp.ttl < 120s) {
        set beresp.ttl = 120s;
        unset beresp.http.Cache-Control;
      }
请注意,每当有人输入url和地址栏并点击enter键时,Chrome默认将缓存控制设置为max age=0。cookie是通过session_start的默认php cookie,也是一个自定义会话cookie

现在我想忽略cookies和缓存控制头

以下是我的VCL设置:

sub vcl_recv {
    # Happens before we check if we have this in cache already.
    #
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
}

sub vcl_backend_response {
    # Happens after we have read the response headers from the backend.
    #
    # Here you clean the response headers, removing silly Set-Cookie headers
    # and other mistakes your backend does.
   # set beresp.ttl = 60s;


  if (beresp.ttl < 120s) {
    set beresp.ttl = 120s;
    unset beresp.http.Cache-Control;
  }
}

sub vcl_deliver {
    # Happens when we have all the pieces we need, and are about to send the
    # response to the client.
    #
    # You can do accounting or modifying the final object here.

    if (obj.hits > 0) {
                set resp.http.X-Cache = "HIT";
        } else {
                set resp.http.X-Cache = "MISS";
        }
}
这是一个失误

后端服务器上的php基本上只是响应一个随机数:

<?php

echo 'Hello worlds';

echo '<hr/>';

echo rand();

?>

Cookie正在阻止缓存命中。尝试在
vcl\u recv
vcl\u backend\u response
中剥离cookie

sub vcl_recv {
    unset req.http.cookie;
}
在vcl_后端_响应中

sub vcl_backend_response {


  if (beresp.ttl < 120s) {
      unset beresp.http.cookie;
      unset beresp.http.Set-Cookie;
      set beresp.ttl = 120s;
      unset beresp.http.Cache-Control;
  }

}
子vcl\u后端\u响应{
如果(贝雷斯普ttl<120s){
取消设置beresp.http.cookie;
unset beresp.http.Set-Cookie;
设置beresp.ttl=120s;
取消设置beresp.http.Cache-Control;
}
}

已测试并按预期工作。缓存,而不考虑标头中的cookie和缓存控制。
sub vcl_recv {
    unset req.http.cookie;
}
sub vcl_backend_response {


  if (beresp.ttl < 120s) {
      unset beresp.http.cookie;
      unset beresp.http.Set-Cookie;
      set beresp.ttl = 120s;
      unset beresp.http.Cache-Control;
  }

}