Ich habe Lack über Docker auf meinem Symfony-Build eingerichtet, kann aber nicht das Caching richtig funktionieren lassen. Das Alter scheint bei 0 zu bleiben, egal was ich versuche.Varnish/Symfony3 Cache auf Nginx - Ago 0 auf Caching
Vom Lesen über es möglicherweise zu tun mit Cookies gesetzt werden oder möglicherweise Köpfe verfällt, aber ich kann nicht für das Leben von mir erarbeiten, was passiert.
Response-Header sind:
Age:0
Cache-Control:max-age=64000, public, s-maxage=64000
Connection:keep-alive
Content-Type:text/html; charset=UTF-8
Date:Thu, 29 Sep 2016 20:21:43 GMT
ETag:"cb3ed8f6672c4be1148c4f7d12c20789"
Server:nginx
Set-Cookie:device_view=full; expires=Sat, 29-Oct-2016 20:21:43 GMT; Max-Age=2592000; path=/; HttpOnly
Transfer-Encoding:chunked
Vary:Accept-Encoding, Accept-Language
Via:1.1 varnish-v4
X-Cache-Debug:1
X-Cache-Debug:1
X-Debug-Token:503eda
X-Debug-Token-Link:http://192.168.99.100/app_dev.php/_profiler/503eda
X-Powered-By:PHP/7.0.11
X-Varnish:65542
Anfrage Header sind:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:customcookie=1; _gat=1; PHPSESSID=1fd8cd59c8d8d0185310ec0cdb06fce7; _ga=GA1.1.706323429.1474891952; hl=en; device_view=full
Host:192.168.99.100
Pragma:no-cache
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Aktuelle VCL-Datei:
vcl 4.0;
backend default {
.host = "192.168.99.100";
.port = "8080";
}
sub vcl_recv {
unset req.http.Forwarded;
if (req.http.X-Forwarded-Proto == "https") {
set req.http.X-Forwarded-Port = "443";
} else {
set req.http.X-Forwarded-Port = "80";
}
// Remove all cookies except the session ID.
if (req.http.Cookie) {
set req.http.Cookie = ";" + req.http.Cookie;
set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
set req.http.Cookie = regsuball(req.http.Cookie, ";(PHPSESSID)=", "; \1=");
set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");
if (req.http.Cookie == "") {
// If there are no more cookies, remove the header to get page cached.
unset req.http.Cookie;
}
}
}
an die unten Ändern keine Wirkung hat:
sub vcl_recv {
unset req.http.Forwarded;
unset req.http.Cookie;
}
Ich vermute, es wird etwas einfaches sein, aber das kann nicht funktionieren. Irgendwelche Hilfe geschätzt
Können Sie die Antwortheader von Ihrem Nginx hinzufügen, wenn Sie es direkt anfordern (ohne Lack)? Außerdem verwenden Sie in Ihrer Anfrage den Header 'Pragma: no-cache', den Sie entfernen sollten. –