In Lack 4 gibt es zwei Arten von Fehlern. Eine davon sind Fehler beim Abrufen des Backends. vcl_backend_error
behandelt diese Art von Fehlern. Ein weiterer Grund sind Fehler, die in VCL generiert werden. vcl_synth
behandelt diese Art von Fehlern.
In Ihrem Fall passen Sie das vcl_error
Unterprogramm an, das nicht für Backend-Fehler vorgesehen ist.
Sie können diese beiden Arten von Fehlern von der folgenden default.vcl unterscheiden.
vcl 4.0;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.url ~ "^/404") {
return (synth(999, "make 404 error explicitly"));
}
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
sub vcl_backend_error {
set beresp.http.Content-Type = "text/html; charset=utf-8";
synthetic( {"errors due to backend fetch"} );
return (deliver);
}
sub vcl_synth {
if (resp.status == 999) {
set resp.status = 404;
set resp.http.Content-Type = "text/plain; charset=utf-8";
synthetic({"errors due to vcl"});
return (deliver);
}
return (deliver);
}
Bestätigen Sie die Fehlermeldungen
$ curl http://localhost:6081/ # If the backend server is not running, "503 Backend fetch failed" error occurs
errors due to backend fetch
$ curl http://localhost:6081/404/foo
errors due to vcl