Add a default rule to not attempt to cache any files larger than 50MB
authorMark Felder <feld@feld.me>
Fri, 5 Feb 2021 19:32:21 +0000 (13:32 -0600)
committerMark Felder <feld@feld.me>
Fri, 5 Feb 2021 19:35:51 +0000 (13:35 -0600)
This fixes connection failures when trying to retrieve large files.
It is less common in typical Pleroma usage, but it's possible to encounter
this on a cloud instance with lower memory.

installation/pleroma.vcl

index 13dad784c9cc219f48901845e20f83f9278a35d6..4752510ea010be1c91abb14bbf947d433d046131 100644 (file)
@@ -59,6 +59,13 @@ sub vcl_backend_response {
       set beresp.http.CR = beresp.http.content-range;
     }
 
+    # Bypass cache for large files
+    # 50000000 ~ 50MB
+    if (std.integer(beresp.http.content-length, 0) > 50000000) {
+       set beresp.uncacheable = true;
+       return(deliver);
+    }
+
     # Don't cache objects that require authentication
     if (beresp.http.Authorization && !beresp.http.Cache-Control ~ "public") {
       set beresp.uncacheable = true;