From 5c8d77f831b9f78851e8b9cc24debf2e1823fa24 Mon Sep 17 00:00:00 2001 From: Magnus Date: Thu, 7 Mar 2024 03:14:08 -0800 Subject: [PATCH] fix(api-server): Preserve original host header for proxied API requests (#10082) Co-authored-by: Daniel Choudhury --- CHANGELOG.md | 2 ++ packages/adapters/fastify/web/src/web.ts | 7 +++++++ packages/vite/src/runFeServer.ts | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a31d7fbf79e..10a4c09c6118 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # CHANGELOG ## Unreleased +- fix(api-server): Preserve original host header for proxied API requests +Some apps rely on reading the host header(eg multi-tenant apps served over multiple subdomains). This change forwards on the original host header on proxied Fastify requests, and the experimental SSR/RSC server - fix(deps): update prisma monorepo to v5.10.2 (#10088) diff --git a/packages/adapters/fastify/web/src/web.ts b/packages/adapters/fastify/web/src/web.ts index d5268d58a5dd..cda8135e86e3 100644 --- a/packages/adapters/fastify/web/src/web.ts +++ b/packages/adapters/fastify/web/src/web.ts @@ -31,6 +31,13 @@ export async function redwoodFastifyWeb( prefix: redwoodOptions.apiUrl, upstream: redwoodOptions.apiProxyTarget, disableCache: true, + replyOptions: { + rewriteRequestHeaders: (req, headers) => ({ + ...headers, + // preserve the original host header, instead of letting it be overwritten by the proxy + host: req.headers.host, + }), + }, }) } diff --git a/packages/vite/src/runFeServer.ts b/packages/vite/src/runFeServer.ts index 486565eada90..a8efbaead178 100644 --- a/packages/vite/src/runFeServer.ts +++ b/packages/vite/src/runFeServer.ts @@ -109,7 +109,7 @@ export async function runFeServer() { // @WARN! Be careful, between v2 and v3 of http-proxy-middleware // the syntax has changed https://github.com/chimurai/http-proxy-middleware createProxyMiddleware({ - changeOrigin: true, + changeOrigin: false, pathRewrite: { [`^${rwConfig.web.apiUrl}`]: '', // remove base path },