AWS Route 53 et CloudFront
Acheminez le trafic /docs vers votre site Jamdesk via AWS CloudFront et Route 53. Configuration de la distribution, de l'origine et du cache incluse.
Configurez une distribution CloudFront pour transférer /docs/* vers votre site Jamdesk, avec Route 53 pour le DNS. Cela prend environ 15 minutes.
Prérequis
- Un compte AWS avec accès à CloudFront et Route 53
- Votre domaine géré dans Route 53 (ou la possibilité de modifier le DNS ailleurs)
- Votre sous-domaine Jamdesk (disponible dans les paramètres du dashboard)
- Votre domaine personnalisé enregistré et vérifié par DNS dans le dashboard Jamdesk
Étape 1 : Créer une distribution CloudFront
- Ouvrez la console CloudFront
- Cliquez sur Create Distribution
- Configurez l'origine :
| Setting | Value |
|---|---|
| Origin domain | YOUR_SLUG.jamdesk.app |
| Protocol | HTTPS only |
| Name | jamdesk-docs-origin |
Remplacez YOUR_SLUG par votre sous-domaine Jamdesk réel.
Étape 2 : Configurer les paramètres d'origine
Dans les paramètres d'origine, ajoutez des en-têtes personnalisés pour identifier votre domaine :
| Header name | Value |
|---|---|
X-Forwarded-Host | yoursite.com |
X-Jamdesk-Forwarded-Host | yoursite.com |
Ces en-têtes indiquent à Jamdesk quel domaine effectue la requête.
Cette étape est obligatoire, et l'omettre échoue silencieusement. La politique AllViewerExceptHostHeader (étape suivante) ne transfère que les en-têtes envoyés par le navigateur de votre visiteur — elle n'en ajoute pas de nouveaux — donc X-Jamdesk-Forwarded-Host n'atteint Jamdesk que comme en-tête personnalisé d'origine. Sans cela, les requêtes réussissent toujours, mais les pages sont servies en noindex avec des liens canoniques pointant vers YOUR_SLUG.jamdesk.app au lieu de votre domaine.
Si vous servez plusieurs noms de domaine alternatifs depuis une seule distribution, les en-têtes d'origine statiques ne peuvent pas varier selon la requête — utilisez plutôt une CloudFront Function sur viewer request, en définissant request.headers['x-jamdesk-forwarded-host'] = { value: request.headers.host.value }.
Étape 3 : Créer des comportements de cache
Ajoutez des comportements pour acheminer /docs/* et les requêtes d'assets vers votre origine Jamdesk :
- Accédez à l'onglet Behaviors
- Cliquez sur Create Behavior
- Créez trois comportements avec ces paramètres :
| Path pattern | Origin | Cache policy | Origin request policy |
|---|---|---|---|
/docs/* | jamdesk-docs-origin | CachingOptimized | AllViewerExceptHostHeader |
/_next/* | jamdesk-docs-origin | CachingOptimized | AllViewerExceptHostHeader |
/_jd/* | jamdesk-docs-origin | CachingOptimized | AllViewerExceptHostHeader |
Définissez Viewer protocol policy sur Redirect HTTP to HTTPS pour les trois.
Les trois comportements sont obligatoires : /_next/* et /_jd/* servent le JavaScript, le CSS, les polices et les images chargés par vos pages de documentation. La politique AllViewerExceptHostHeader transfère les en-têtes de requête du visiteur (tout sauf Host, que CloudFront réserve à l'origine) et doit être définie sur les trois.
Étape 4 : Ajouter un nom de domaine alternatif
- Dans l'onglet General, cliquez sur Edit
- Sous Alternate domain name (CNAME), ajoutez
yoursite.com - Sélectionnez ou demandez un certificat SSL pour votre domaine
Étape 5 : Configurer Route 53
Créez un enregistrement alias pointant vers votre distribution CloudFront :
- Ouvrez la console Route 53
- Sélectionnez votre zone hébergée
- Cliquez sur Create Record
- Configurez :
| Setting | Value |
|---|---|
| Record name | yoursite.com (ou laissez vide pour l'apex) |
| Record type | A |
| Alias | Yes |
| Route traffic to | CloudFront distribution |
| Distribution | Sélectionnez votre distribution |
Étape 6 : Vérifier
Après la propagation du DNS (généralement 5 à 15 minutes), visitez https://yoursite.com/docs pour confirmer que votre documentation se charge correctement.
Résumé complet de la configuration CloudFront
Distribution Settings:
├── Origin: YOUR_SLUG.jamdesk.app
│ ├── Custom Header: X-Forwarded-Host = yoursite.com
│ └── Custom Header: X-Jamdesk-Forwarded-Host = yoursite.com
├── Behavior: /docs/*
│ ├── Cache Policy: CachingOptimized
│ └── Origin Request Policy: AllViewerExceptHostHeader
├── Behavior: /_next/*
│ ├── Cache Policy: CachingOptimized
│ └── Origin Request Policy: AllViewerExceptHostHeader
├── Behavior: /_jd/*
│ ├── Cache Policy: CachingOptimized
│ └── Origin Request Policy: AllViewerExceptHostHeader
└── Alternate Domain: yoursite.com (with SSL certificate)
Dépannage
Assurez-vous que le domaine d'origine est exactement YOUR_SLUG.jamdesk.app, sans le préfixe https://.
Vérifiez que la Viewer protocol policy est définie sur « Redirect HTTP to HTTPS » et que votre certificat SSL est valide.
Créez une invalidation CloudFront pour /docs/* afin de vider le contenu mis en cache après la publication de modifications.
Si vous voyez « Domain is not authorized to serve this content » :
- Vérifiez que votre domaine est enregistré dans le dashboard Jamdesk
- Effectuez la vérification DNS (enregistrement TXT) pour votre domaine
- Assurez-vous que les en-têtes personnalisés
X-Forwarded-HostetX-Jamdesk-Forwarded-Hostsont définis dans la configuration de votre origine - Vérifiez que votre domaine correspond au bon projet
Le domaine doit être vérifié avant que CloudFront puisse servir la documentation.
Preflight récupère /_jd/preflight sur votre domaine en production et vérifie ce qui atteint réellement Jamdesk. S'il indique que votre proxy « doesn't identify itself », CloudFront atteint bien Jamdesk mais sans X-Jamdesk-Forwarded-Host — revérifiez l'en-tête personnalisé d'origine à l'étape 2. Consultez Domaine personnalisé uniquement pour comprendre ce que signifie chaque message preflight.
