Einen Reverse-Proxy anbinden
Angenommen, du möchtest die Hono-Anwendung hinter einem Reverse-Proxy ausführen. In diesem Fall musst du möglicherweise den Wert des Headers x-forwarded-proto berücksichtigen. Beispielsweise soll c.req.url das URL-Protokoll enthalten, das durch x-forwarded-proto angegeben wird.
Die empfohlene Vorgehensweise besteht darin, vor dem Aufruf von Honos app.fetch ein neues Request-Objekt zu erstellen und es an app.fetch zu übergeben.
Cloudflare Workers / Deno / Bun
ts
import { Hono } from 'hono'
const app = new Hono()
//...
export default {
fetch: (req: Request) => {
const url = new URL(req.url)
url.protocol =
req.headers.get('x-forwarded-proto') ?? url.protocol
return app.fetch(new Request(url, req))
},
}Node.js
ts
import { Hono } from 'hono'
import { serve } from '@hono/node-server'
const app = new Hono()
serve({
fetch: (req) => {
const url = new URL(req.url)
url.protocol =
req.headers.get('x-forwarded-proto') ?? url.protocol
return app.fetch(new Request(url, req))
},
})