Hébergez votre documentation dans un sous-dossier avec Cloudflare
Suivez ce guide pour héberger votre centre d'aide Ferndesk dans un sous-dossier personnalisé (comme votredomaine.com/help) en utilisant Cloudflare Workers comme proxy inverse.
Cela prend environ 10 minutes et nécessite peu de connaissances techniques. Nous l'avons rédigé pour qu'il soit aussi facile à suivre que possible.
Vous êtes bloqué ? Contactez [email protected] et nous vous aiderons à terminer votre configuration.
Prérequis
Un espace de travail Ferndesk avec un accès administrateur
Un domaine vous appartenant (déjà pointé vers Cloudflare)
Une connaissance de base du tableau de bord Cloudflare
Le forfait gratuit de Cloudflare autorise 100 000 requêtes Worker par jour. Pour les centres d'aide en production avec un trafic élevé, envisagez de passer à un forfait payant avec facturation à l'usage.
Étape 1 : Configurer le sous-dossier personnalisé dans Ferndesk
Tout d'abord, configurez votre centre d'aide Ferndesk pour utiliser un chemin de sous-dossier personnalisé.
Connectez-vous à votre espace de travail Ferndesk, développez Help Center dans la barre latérale gauche, puis cliquez sur Customize.
Cliquez sur Custom domain
Sélectionnez l'option Custom sub-folder
Saisissez votre domaine dans le champ Domain (par ex.,
votredomaine.com).Saisissez le chemin du sous-dossier souhaité dans le champ Subdirectory (par ex.,
/helpou/docs).Cliquez sur Configure sub-folder.
Une fois configuré, Ferndesk générera les enregistrements DNS et les informations de point de terminaison nécessaires. Notez ces détails : vous les utiliserez lors de la configuration du proxy inverse.
Étape 2 : Créer un Cloudflare Worker
Créez maintenant un nouveau Cloudflare Worker qui fera office de proxy inverse.
Connectez-vous à votre tableau de bord Cloudflare.
Sous BUILD → Compute & AI, accédez à Workers & Pages dans la barre latérale gauche .
Cliquez sur Create application en haut à droite.
Sous Start with Hello World!, cliquez sur Get started.
Donnez à votre Worker un nom descriptif comme
ferndesk-reverse-proxy, puis cliquez sur Deploy.
Étape 3 : Configurer les routes du Worker
Configurez la règle de routage qui dirige le trafic de votre sous-dossier personnalisé vers le Cloudflare Worker.
Dans les paramètres du Worker, accédez à l'onglet Settings.
Faites défiler jusqu'à Domains & Routes et cliquez sur Add.
Une fenêtre modale s'ouvrira. Sélectionnez l'option Route.
Dans le menu déroulant Zone, sélectionnez votre domaine (par ex.,
votredomaine.com).Dans le champ Route, saisissez le modèle pour le chemin de votre sous-dossier. Utilisez
votredomaine.com/helppour capturer toutes les requêtes vers le chemin/helpet ses sous-chemins.Laissez Failure mode réglé sur Fail closed (block) pour des raisons de sécurité.
Cliquez sur Add route.
IMPORTANT : Vous devez ajouter une route séparée pour le répertoire des ressources de Ferndesk _ferndesk. Suivez les étapes ci-dessous pour terminer votre configuration.
Étape 3b : Ajouter la route _ferndesk
Faites défiler jusqu'à Domains & Routes et cliquez sur Add.
Une fenêtre modale s'ouvrira. Sélectionnez l'option Route.
Dans le menu déroulant Zone, sélectionnez votre domaine (par ex.,
votredomaine.com).Dans le champ Route, saisissez le modèle pour le chemin de votre sous-dossier. Utilisez
votredomaine.com/_ferndeskpour capturer toutes les requêtes vers le chemin/_ferndesket ses sous-chemins.Laissez Failure mode réglé sur Fail closed (block) pour des raisons de sécurité.
Cliquez sur Add route.
Étape 4 : Modifier le code du Worker
Mettez maintenant à jour le code du Worker pour gérer la logique de proxy inverse. Le Worker interceptera les requêtes vers votre sous-dossier et les transmettra à Ferndesk.
Cliquez sur Edit code (ou accédez à l'éditeur de code depuis le tableau de bord du Worker).
Remplacez l'intégralité du code
worker.jspar le script de proxy inverse ci-dessous.// ONLY edit these const HELP_HOST = 'your-slug.hc.ferndesk.com'; // your Ferndesk help center host copied from your dashboard const PROXY_PREFIX = '/help'; // the path you want your help center to live on addEventListener('fetch', (event) => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const originalUrl = new URL(request.url); if (originalUrl.pathname.endsWith('/') && originalUrl.pathname !== '/') { originalUrl.pathname = originalUrl.pathname.slice(0, -1); return Response.redirect(originalUrl.toString(), 301); } if ( originalUrl.pathname !== PROXY_PREFIX && !originalUrl.pathname.startsWith(`${PROXY_PREFIX}/`) && !originalUrl.pathname.startsWith('/_ferndesk/') ) { return fetch(request); } // Build the upstream request with the prefix removed const upstreamUrl = new URL(originalUrl.toString()); upstreamUrl.hostname = HELP_HOST; if (upstreamUrl.pathname === PROXY_PREFIX) { upstreamUrl.pathname = '/'; } else if (upstreamUrl.pathname.startsWith(`${PROXY_PREFIX}/`)) { upstreamUrl.pathname = upstreamUrl.pathname.slice(PROXY_PREFIX.length) || '/'; } const proxyRequest = new Request(upstreamUrl.toString(), request); // CRITICAL: Needed to resolve requests correctly proxyRequest.headers.set('X-Ferndesk-Base-Path', PROXY_PREFIX); proxyRequest.headers.set('X-Forwarded-Host', originalUrl.host); proxyRequest.headers.set('X-Ferndesk-Original-Host', originalUrl.host); return fetch(proxyRequest); }Remplacez
HELP_HOSTpar le domaine Ferndesk réel fourni lors de la configuration de votre sous-dossier personnalisé. RemplacezPROXY_PREFIXsi vous utilisez un chemin de sous-dossier différent (par ex.,/docsau lieu de/help).Cliquez sur Deploy pour publier vos modifications.
Étape 5 : Vérifier la configuration
Vérifiez que votre centre d'aide est désormais accessible via le chemin de votre sous-dossier personnalisé.
Ouvrez un nouvel onglet dans votre navigateur et accédez à
https://votredomaine.com/help.Vous devriez voir votre centre d'aide Ferndesk s'afficher avec votre image de marque.
Testez quelques pages en cliquant sur les liens pour vous assurer que la navigation fonctionne correctement.
Si votre centre d'aide se charge avec succès et affiche votre contenu, le proxy inverse fonctionne correctement ! Vos clients peuvent désormais accéder à votre centre d'aide via votre domaine personnalisé.
Un problème ? Contactez-nous à [email protected] et nous vous aiderons à terminer votre configuration.
Dépannage
Problème | Cause | Solution |
|---|---|---|
Erreur 404 Not Found lors de la visite de l'URL | La route n'est pas configurée correctement ou le Worker n'est pas déployé | Vérifiez que le modèle de route correspond exactement à votre domaine et au chemin de votre sous-dossier. Vérifiez que le Worker est déployé et actif dans la section Domains & Routes. |
Page blanche ou style cassé | Le domaine Ferndesk dans le code du Worker est incorrect | Vérifiez que la variable |
Le CSS et les images ne se chargent pas | Les URL relatives dans la réponse de Ferndesk ne sont pas réécrites | Vous devrez peut-être ajouter une réécriture des en-têtes de réponse pour gérer les ressources relatives. Contactez le support Ferndesk pour une configuration avancée du proxy. |
Requêtes Worker limitées à 100 000/jour | Limite de débit du forfait gratuit Cloudflare atteinte | Passez votre forfait Cloudflare à une facturation à l'usage pour obtenir des requêtes illimitées au-delà du niveau gratuit. |