Jamdesk Documentation logo

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

  1. Ouvrez la console CloudFront
  2. Cliquez sur Create Distribution
  3. Configurez l'origine :
SettingValue
Origin domainYOUR_SLUG.jamdesk.app
ProtocolHTTPS only
Namejamdesk-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 nameValue
X-Forwarded-Hostyoursite.com
X-Jamdesk-Forwarded-Hostyoursite.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 :

  1. Accédez à l'onglet Behaviors
  2. Cliquez sur Create Behavior
  3. Créez trois comportements avec ces paramètres :
Path patternOriginCache policyOrigin request policy
/docs/*jamdesk-docs-originCachingOptimizedAllViewerExceptHostHeader
/_next/*jamdesk-docs-originCachingOptimizedAllViewerExceptHostHeader
/_jd/*jamdesk-docs-originCachingOptimizedAllViewerExceptHostHeader

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

  1. Dans l'onglet General, cliquez sur Edit
  2. Sous Alternate domain name (CNAME), ajoutez yoursite.com
  3. 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 :

  1. Ouvrez la console Route 53
  2. Sélectionnez votre zone hébergée
  3. Cliquez sur Create Record
  4. Configurez :
SettingValue
Record nameyoursite.com (ou laissez vide pour l'apex)
Record typeA
AliasYes
Route traffic toCloudFront distribution
DistributionSé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 » :

  1. Vérifiez que votre domaine est enregistré dans le dashboard Jamdesk
  2. Effectuez la vérification DNS (enregistrement TXT) pour votre domaine
  3. Assurez-vous que les en-têtes personnalisés X-Forwarded-Host et X-Jamdesk-Forwarded-Host sont définis dans la configuration de votre origine
  4. 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.

Et ensuite ?

Domaine personnalisé uniquement

Empêchez votre sous-domaine de répondre directement

Domaines personnalisés

Vérifiez le DNS et résolvez les problèmes

Hébergement en sous-chemin

Servez la documentation sur /docs