<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
We use Varnish 6.0 (LTS), and we have the need to serve static files directly from disk. I would prefer not having to add another service (like nginx) and add it as a backend to varnish. If possible we would like to make Varnish serve the static files directly.
 We already do that for the html page for 500-errors, using this in vcl_backend_error:</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
synthetic(std.fileread("/etc/varnish/500.html"));</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
return (deliver);</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Can we do something similar for regular content? Say that any path that starts with "/static-files/" gets "routed" to a file on disk under /some-files/. So a request for "/static-files/abc/123/x.txt" means it will serve the file "/some-files/abc/123/x.txt".
 And if the file doesn't exist we would like to serve a static html-file for the 404 error.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is this is doable, and sensible? If so, is this documented somewhere?</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
For the time being, we don't really need to update the files, so maybe std.fileread is enough (if I understand it correctly it will only read one file once, then cache it forever)? But eventually people likely will want to update existing files, and without
 us having to restart Varnish. Would it make sense to start with std.fileread, or should we start with something else from the start? If the latter, is the "file" vmod the recommended way? The documentation mentions requiring the master branch of Varnish, which
 I'm not sure what that means. We use 6.0 (LTS) and we are not willing to move away from LTS. </div>
</body>
</html>