Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vcl 4.0;
- import std;
- backend pleroma {
- .host = "192.168.10.91";
- .port = "4000";
- }
- sub vcl_recv {
- # Pleroma should not get cached unless it's media
- if (req.http.host ~ "social.cheesebsd.com") {
- set req.backend_hint = pleroma;
- if (req.http.upgrade ~ "(?i)websocket") {
- return (pipe);
- }
- if ((req.url ~ "^/(media|static)/") ||
- (req.url ~ "(?i)\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|svg|swf|ttf|pdf|woff|woff2)$") ||
- (req.url ~ "^/api/v1/statuses/.*/context")) {
- unset req.http.Cookie;
- unset req.http.Authorization;
- return (hash);
- }
- }
- }
- sub vcl_backend_response {
- # etags are bad
- unset beresp.http.etag;
- # Default object caching of 86400s;
- set beresp.ttl = 86400s;
- # Allow caching for 6h in case backend goes down
- set beresp.grace = 6h;
- # Do not cache 5xx responses
- if (beresp.status == 500 || beresp.status == 502 || beresp.status == 503 || beresp.status == 504) {
- set beresp.uncacheable = true;
- return (abandon);
- #return (retry);
- }
- # Do not cache redirects and errors
- if (beresp.status >= 300) {
- set beresp.uncacheable = true;
- set beresp.ttl = 30s;
- return (deliver);
- }
- if (bereq.backend == pleroma) {
- if ((bereq.url ~ "(?i)\.(js|css|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|svg|swf|ttf|pdf|woff|woff2)$") ||
- (bereq.url ~ "^/api/v1/statuses/.*/context") ||
- (bereq.url ~ "^/api/v1/custom_emojis"))
- {
- set beresp.ttl = 86400s;
- unset beresp.http.set-cookie;
- unset beresp.http.Cache-Control;
- unset beresp.http.x-request-id;
- set beresp.http.Cache-Control = "public, max-age=86400";
- }
- }
- }
- sub vcl_pipe {
- if (req.http.upgrade) {
- set bereq.http.upgrade = req.http.upgrade;
- set bereq.http.connection = req.http.connection;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement