From 966639df430d32f6bfebdb16314dc4590d21caf8 Mon Sep 17 00:00:00 2001 From: Pedro Nascimento Date: Sun, 12 Feb 2023 08:05:29 -0300 Subject: [PATCH] perf(imageproxy): do not set cookies to image proxy so CDNs can cache images (#3332) CDNs such as Cloudflare bypass their cache if cookies are set in the response. clearCookies middleware removes the header before imageproxy serves the image. --- server/index.ts | 4 +++- server/middleware/clearcookies.ts | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 server/middleware/clearcookies.ts diff --git a/server/index.ts b/server/index.ts index 93703402..b426f0f3 100644 --- a/server/index.ts +++ b/server/index.ts @@ -17,6 +17,7 @@ import WebhookAgent from '@server/lib/notifications/agents/webhook'; import WebPushAgent from '@server/lib/notifications/agents/webpush'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; +import clearCookies from '@server/middleware/clearcookies'; import routes from '@server/routes'; import imageproxy from '@server/routes/imageproxy'; import { getAppVersion } from '@server/utils/appVersion'; @@ -182,7 +183,8 @@ app }); server.use('/api/v1', routes); - server.use('/imageproxy', imageproxy); + // Do not set cookies so CDNs can cache them + server.use('/imageproxy', clearCookies, imageproxy); server.get('*', (req, res) => handle(req, res)); server.use( diff --git a/server/middleware/clearcookies.ts b/server/middleware/clearcookies.ts new file mode 100644 index 00000000..73713e52 --- /dev/null +++ b/server/middleware/clearcookies.ts @@ -0,0 +1,6 @@ +const clearCookies: Middleware = (_req, res, next) => { + res.removeHeader('Set-Cookie'); + next(); +}; + +export default clearCookies;