Ich benutze Lack 4, php-fpm 7, nginx, CentOS 7Varnish 4 ESI: bereq.url nicht url innerhalb ESI src-Tag lesen
Mein varnish.params:
DAEMON_OPTS="-a :80 -T 127.0.0.1:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,1g
-p feature=+esi_disable_xml_check,+esi_ignore_other_elements
-p cli_buffer=16384
-p vcc_allow_inline_c=on"
Meine default.vcl:
if (bereq.url ~ "^.*(\/**esi**\/)+.*$") {
set beresp.do_esi = true;
set beresp.ttl = 0s;
} else {
set beresp.ttl = 3600s;
}
Mein Problem ist, wenn ich, dass vcl Code zu benutzen, die durch den Zugriff auf sagen, dass es ausgelöst wird: http://localhost/lab/varnish
Welche machen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<esi:include src="http://localhost/lab/esi/body"/>
</body>
</html>
Varnish ist nicht die URL src in dem ESI-Tag zu lesen, so dass es nur einen leeren Körper zu machen.
Aber wenn ich diesen Code verwenden:
if (bereq.url ~ "^.*(\/**lab**\/)+.*$") {
set beresp.do_esi = true;
set beresp.ttl = 0s;
} else {
set beresp.ttl = 3600s;
}
Varnish erfolgreich den Inhalt innerhalb ESI-Tag machen, die hergestellt wird durch: http://localhost/lab/esi/body
Wie Varnish machen auslösen machen das ESI-Fragment basierend auf Erkennen, was in ESI "src" -Tag ist?
Ich habe versucht, Surrogate-Capability und Überprüfung mit Surrogate-Control, es funktioniert auch nicht, für mich. Ich habe keine Ahnung mehr ..
Ich möchte Lack den bereits zwischengespeicherten Inhalt verwenden, um dem Client zu dienen, und Inhalt von der Quelle innerhalb des ESI-Tags ausschließen (Anforderung an Back-End). Kann es getan werden? –