-
Vincent Fontesse authoredVincent Fontesse authored
@sveltejs/adapter-node
Adapter pour les applications SvelteKit qui génèrent un serveur Node autonome.
Usage
Installé avec npm i -D @sveltejs/adapter-node
, puis ajouter l'[Adapter] à votre svelte.config.js
:
// svelte.config.js
import adapter from "@sveltejs/adapter-node";
export default {
kit: {
adapter: adapter(),
},
};
Variables d'environnement
PORT
et HOST
Par défaut, le serveur acceptera les connexions sur 0.0.0.0
en utilisant le port 3000. Celles-ci peuvent être personnalisées avec les variables d’environnement PORT
et HOST
:
HOST=127.0.0.1 PORT=4000 node build
ORIGIN
, PROTOCOL_HEADER
et HOST_HEADER
HTTP ne donne pas à SvelteKit un moyen fiable de connaître l’URL actuellement demandée. La façon la plus simple de dire à SvelteKit où l’application est servie est de définir la variable d’environnement ORIGIN
:
ORIGIN=https://my.site node build
Avec cela, une demande pour le chemin /stuff
se résoudra correctement à https://my.site/stuff
. Vous pouvez également spécifier des en-têtes qui indiquent à SvelteKit le protocole de requête et l’hôte, à partir desquels il peut construire l’URL d’origine :
PROTOCOL_HEADER=x-forwarded-proto HOST_HEADER=x-forwarded-host node build
x-forwarded-proto
etx-forwarded-host
sont de facto des en-têtes standard qui transmettent le protocole d’origine et l’hôte si vous utilisez un reverse proxy (pensez au load balancers et CDN). Vous ne devriez définir ces variables que si votre serveur est derrière un reverse proxy de confiance ; sinon, il serait possible pour les clients d'usurper ces en-têtes.
ADDRESS_HEADER
et XFF_DEPTH
L’objet [RequestEvent] (https://kit.svelte.dev/docs/types#additional-types-requestevent) transmis aux hooks et aux endpoints comprend une propriété event.clientAddress
représentant l’adresse IP du client. Par défaut, il s’agit de la connexion remoteAddress
. Si votre serveur est derrière un ou plusieurs proxies (comme un load balancer), cette valeur contiendra l’adresse IP du proxy le plus interne plutôt que celle du client, nous devons donc spécifier un `ADDRESS_HEADER” pour lire l’adresse de :
ADDRESS_HEADER=True-Client-IP node build
Les en-têtes peuvent facilement être usurpés. Comme pour
PROTOCOL_HEADER
etHOST_HEADER
, vous devriez savoir ce que vous faites avant de les configurer.
Si l’en-tête ADDRESS_HEADER
est X-Forwarded-For
, la valeur de l’en-tête contiendra une liste d’adresses IP séparées par des virgules. La variable d’environnement XFF_DEPTH
doit spécifier le nombre de proxys de confiance devant votre serveur. Par exemple, s’il y a trois proxy de confiance, les proxys 3 transmettront les adresses de la connexion originale et des deux premiers proxys :