Utiliser un proxy inverse
Supposons que vous souhaitiez exécuter l’application Hono derrière un proxy inverse. Dans ce cas, vous devrez peut-être prendre en compte la valeur de l’en-tête x-forwarded-proto. Par exemple, le protocole de l’URL disponible dans c.req.url doit pouvoir refléter celui indiqué par x-forwarded-proto.
La bonne pratique consiste à créer un nouvel objet Request avant l’appel à app.fetch de Hono, puis à le transmettre à app.fetch.
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))
},
})