2016-09-07 5 views
1

Ich versuche Lack Cache Antwort zu erhalten gestückelt werden ... (das ist möglich, nicht wahr?)Varnish Rückkehr (Fetch/deliver) vs aufgeteilte Codierung

Ich habe folgendes Szenario:

1 - Cache ist sauber, gut zu gehen (Service-Lack Neustart)

2 - Zugriff auf die www.mywebsite.com/page zum ersten Mal

First time access headers

(kein Inhalt Länge zurückgegeben und Chunking ist es, großartig!)

3 - das nächste Mal, wenn ich auf der Seite zugreifen (wie einfache Nachladen) wird es .. und nun im Cache gespeichert werden, ich dies:

2+ time access headers

(jetzt haben wir Content-Length ... die keine Chunking bedeutet :(nicht groß!)

Nach einiger Varnish docs/Blogs zu lesen (und dies: http://book.varnish-software.com/4.0/chapters/VCL_Basics.html), sieht so aus, als gäbe es zwei "letzte" Retouren: return (fetch) oder return (liefern).

Beim Erzwingen einer Rückgabe (holen) funktioniert die Chunked-Codierung ... aber es bedeutet auch, dass die Anfrage nicht im Cache gespeichert wird, oder? Während return (deliver) korrekt zwischenspeichert, aber die Inhaltslänge Header hinzugefügt.

set beresp.do_esi = true; (at vcl_backend_response stage) 

und

unset beresp.http.content-length; (at different stages, without success) 

So .. Wie haben Varnish Caching arbeiten mit Transfer-Encoding: diese meine default.vcl Datei hinzufügen

Ich habe versucht, chunked?

Vielen Dank für Ihre Aufmerksamkeit!

Antwort

0

Gibt es einen Grund, warum Sie es chunked senden möchten? Die Chunked-Transfer-Codierung ist eine Art umständlicher Workaround, wenn die Inhaltslänge nicht vorher bekannt ist. Was hier tatsächlich passiert ist, dass Varnish in der Lage ist, die Länge des gezippten Inhalts zu berechnen, nachdem es zum ersten Mal zwischengespeichert wurde, und somit die Problemumgehung nicht verwenden muss! Seien Sie versichert, dass Sie in diesem Szenario keine Leistungssteigerungen verpassen.