File system cache plugin for prerender. Main features:
- Cache response status code, headers and gzipped content
- Cache filenames are URLs hashed (smaller and more concise than using the URL itself) saved in up to 256 sub directories to prevent slowdowns from having too many files in one directory
- Remove headers that should not be cached (like
Date
,Age
etc. - seenonCacheableHeaders
) - Automatically remove stored files after TTL is reached (also executes a cleanup on startup)
- Cache only GET requests and some configurable status codes
- Won't retrieve file from cache if header
Cache-Control
has valueno-cache
(useful to pro-actively refresh the cached entry)
Install the dependency:
npm install prerender-plugin-fscache
Load the plugin into your server:
// server.js
const prerender = require("prerender");
const server = prerender();
server.use(require("prerender-plugin-fscache"));
server.start();
Run it with node server.js
and then test it:
time wget http://localhost:3000/https://www.google.com/ # First one will time more time
time wget http://localhost:3000/https://www.google.com/ # Cached, should be quicker
-
CACHE_PATH
: directory to save cached content (default:/tmp/prerender-cache
) -
CACHE_TTL
: time-to-live for each cached response, in seconds (default:86400
) -
CACHE_STATUS_CODES
: comma-separated list of response status codes allowed to be cached (only GET requests are cached, default:200, 301, 302, 303, 304, 307, 308, 404
).