Lack: Cacheble aber nicht zwischengespeichert
wenn ich diesen Befehl ausführen
varnishtop -i txurl
diese Anfrage "cacheble", aber nicht "zwischengespeichert". Ich sehe "Age=0" (Alter, halten in Lack), wie um es zu Bearbeiten?
Dies ist der Antrag für meine .php-Seite
GET-Verwendet http://example.com
User-Agent: lwp-request/5.810
200 OK
Cache-Control: max-age=60, public, must-revalidate
Connection: close
Date: Sat, 18 Feb 2012 12:14:33 GMT
Via: 1.1 varnish
Age: 0
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html
Expires: Sat, 18 Feb 2012 12:24:33 GMT
Client-Date: Sat, 18 Feb 2012 12:14:34 GMT
Client-Peer: 173.236.219.104:80
Client-Response-Num: 1
Client-Transfer-Encoding: chunked
X-Cache: MISS
X-Cacheable: YES
X-Varnish: 840966561
.htaccess code
# BEGIN Expire headers
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 5 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
# END Expire headers
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "public, must-revalidate"
</filesMatch>
</ifModule>
Standard.vlc
backend default {
.host = "173.236.219.104";
.port = "81";
.connect_timeout = 600s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
sub vcl_fetch {
# Varnish determined the object was not cacheable
if (beresp.ttl <= 0s) {
set beresp.http.X-Cacheable = "NO:Not Cacheable";
# You don't wish to cache content for logged in users
} elsif (req.http.Cookie ~ "(UserID|_session)") {
set beresp.http.X-Cacheable = "NO:Got Session";
return(hit_for_pass);
# You are respecting the Cache-Control=private header from the backend
} elsif (beresp.http.Cache-Control ~ "private") {
set beresp.http.X-Cacheable = "NO:Cache-Control=private";
return(hit_for_pass);
# Varnish determined the object was cacheable
} else {
set beresp.http.X-Cacheable = "YES";
}
# ....
return(deliver);
}
Können Sie fügen Sie bitte auch der Lack in der config ? Nur die relevanten Teile. Weil das klingt viel wie ein Lack config problem.
ok, fertig. aktualisierte post
Könnten Sie bitte ausführen, varnishlog und dann führen Sie GET -Used example.com oder curl-I example.com und fügen Sie den varnishlog Ausgabe hier ?
ok, fertig. aktualisierte post
Könnten Sie bitte ausführen, varnishlog und dann führen Sie GET -Used example.com oder curl-I example.com und fügen Sie den varnishlog Ausgabe hier ?
InformationsquelleAutor sparkle | 2012-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich das backend bekommt ein cookie, also Lack nicht cache-Inhalt.
Hier mehr info darüber: Lack-Cookies
Gibt es auch einige Ungereimtheiten, auf die Antwort, die Sie erhalten von LWP.
In der Tat sehe ich einen max-age-header auf 60 Sekunden eingestellt, die ich nicht sehen, konfiguriert auf die gesicherte Ende überall.
Einer LWP-request auf die Herkunft als auch dazu beitragen könnte, zu Debuggen das problem.
InformationsquelleAutor Silenteh