Zum Inhalt springen

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))
  },
})

Veröffentlicht unter der MIT-Lizenz.