Lack nicht Verarbeitung ESI umfasst
Ich versuche, setup-Lack zu verarbeiten ESI umfasst, die auf einer lokalen Umgebung.
Ich bin mit Lack in einer virtuellen Maschine und der Inhalt läuft auf der host-Maschine.
Ich habe zwei Dateien "index.html" und "test.html". Diese sind beide in einem Ordner gespeichert, genannt "esi" in der docroot des apache Servers.
index.html
<h1>It Works!</h1>
<esi:include src="test.html" />
test.html
<p>ESI HAS BEEN INCLUDED</p>
Lack läuft auf der virtuellen Maschine auf port 8000. So habe ich Zugriff auf das hier: http://192.168.56.101:8000/esi/
in /etc/varnish/default.vcl auf der virtuellen Maschine habe ich die folgende Konfiguration am Ende der Datei:
sub vcl_fetch {
set beresp.do_esi = true; /* Do ESI processing */
set beresp.ttl = 24 h; /* Sets the TTL on the HTML above */
}
Mit der Idee, dass es ESI-Prozess auf ALLE Anfragen (Dont care, wenn seine schlechte Praxis nur versucht, um dieses Ding zu arbeiten :))
Das Ergebnis, wenn ich laden http://192.168.56.101:8000/esi/ ist:
<h1>It Works!</h1>
<esi:include src="test.html" />
ie. die ESI ist in gezeigt, in der markup, es ist nicht bearbeitet.
Ich habe die Lack-log, aber es sind keine Fehler drin und nichts mit Bezug zu ESIs.
Kann jeder sehen, was mache ich hier falsch? Lassen Sie mich wissen, wenn weitere Informationen benötigt werden.. danke
- Verwenden Sie Lack - > 3.0 ? Da bist du mit dem neuen syntax...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr esi include src "test.html" dann der Lack wird senden die Anfrage an den default-backend, das ist 127.0.0.1. Ich glaube, Sie müssen zum konfigurieren eines zweiten back-End für Ihre remote-server. So etwas wie dieses:
Dann in die sub vcl_recv müssen Sie zum umleiten von Datenverkehr, der hat /esi/in der URL zum remote-server.
Ich bin an der gleichen Sache arbeiten jetzt also versuchen Sie es und lassen Sie mich wissen, wenn es für Sie arbeitet.
sub vcl_fetch
enthältset beresp.do_esi = true;
Lack nicht die Mühe zu machen, die mit Anfrage an das backend und nur dumps die esi-Tags in der Antwort. Dies zeigt sich hoch in google, aber ich sehe nicht, wie dieses oder die andere Antwort ist eigentlich eine Antwort.Lack erst einen kleinen Teil der ESI. Als der 2.1 drei ESI-Anweisungen:
Content-substitution basieren auf Variablen und cookies ist nicht implementiert, ist aber auf der roadmap.
Der Lack wird nicht der Prozess ESI-Anweisungen in HTML-Kommentare.
Für ESI arbeiten, müssen Sie diese aktivieren-ESI-Verarbeitung in der VCL, wie diese:
}
Für ESI arbeiten (Lack 3.x),
der erste char muss ein "<" so fügen Sie einfach eine HTML-Struktur
Hier mein test :
index.php
date.php
Ausgabe :
Stellen Sie sicher, dass Ihre config gelesen Lack. Wenn Sie mit Lack in einem docker-container, die Sie haben könnten, um es wieder aufzubauen.
Können Sie Ihre config etwas lächerlich und sehen, ob es fängt ihn auf. Zum Beispiel ändern Sie das backend w3.org.
Wenn diese noch gibt das gleiche Ergebnis, Sie config nicht verwendet.