[{"data":1,"prerenderedAt":2629},["ShallowReactive",2],{"layout-article-sidebar-fr-vps_vs_cloud_vs_dedicated_server":3,"similar-articles-fr-vps_vs_cloud_vs_dedicated_server":263,"article-fr-vps_vs_cloud_vs_dedicated_server":2474},{"id":4,"title":5,"body":6,"date":245,"description":246,"extension":247,"image":248,"meta":249,"navigation":250,"path":251,"seo":252,"stem":253,"tags":254,"type":260,"updatedAt":261,"__hash__":262},"articlesFr\u002Farticles\u002Ffr\u002FVps_vs_Cloud_vs_Dedicated_server.md","VPS vs Cloud vs Serveur Dédié : Lequel Choisir ?",{"type":7,"value":8,"toc":229},"minimark",[9,14,18,21,24,28,31,34,39,44,47,51,54,58,61,65,68,72,84,88,91,96,112,114,118,121,125,128,134,138,164,166,170,173,177,197,200,202,206,226],[10,11,13],"h1",{"id":12},"vps-vs-cloud-vs-serveur-dédié-le-guide-complet","VPS vs Cloud vs Serveur Dédié : Le Guide Complet",[15,16,17],"p",{},"Choisir son hébergeur et son type d'infrastructure est un défi courant pour tout développeur. Que vous lanciez un petit projet personnel ou une application d'entreprise à fort trafic, comprendre les différences entre le Cloud, le VPS et le Serveur Dédié est essentiel.",[15,19,20],{},"Dans ce guide, nous allons détailler chaque option, leurs avantages, leurs inconvénients et les cas d'utilisation idéaux.",[22,23],"hr",{},[10,25,27],{"id":26},"le-cloud-computing","Le Cloud Computing",[15,29,30],{},"Le Cloud est devenu le standard de l'industrie ces dernières années, et ce n'est pas sans raison. Il offre une flexibilité et des performances inégalées, capables de s'adapter quasi-infiniment à vos besoins.",[15,32,33],{},"Cependant, \"un grand pouvoir implique de grandes responsabilités\" — et une facture potentiellement salée. Si vous ne gérez pas vos ressources avec précaution, vous pourriez vous retrouver avec une note astronomique à la fin du mois.",[35,36,38],"h2",{"id":37},"les-principaux-fournisseurs","Les Principaux Fournisseurs",[40,41,43],"h3",{"id":42},"aws-amazon-web-services","AWS (Amazon Web Services)",[15,45,46],{},"Le leader incontesté du marché. AWS propose plus de 200 services, allant des serveurs traditionnels (EC2) aux bases de données (RDS) en passant par le serverless (Lambda). Très puissant, mais complexe à maîtriser.",[40,48,50],{"id":49},"gcp-google-cloud-platform","GCP (Google Cloud Platform)",[15,52,53],{},"L'offre de Google est un sérieux challenger, particulièrement réputé pour son excellence avec Kubernetes (GKE), l'analyse de données et le machine learning.",[40,55,57],{"id":56},"azure-microsoft","Azure (Microsoft)",[15,59,60],{},"Azure est incontournable dans le monde de l'entreprise. Il s'intègre parfaitement à l'écosystème Microsoft et propose des outils DevOps puissants (Azure DevOps).",[40,62,64],{"id":63},"ovhcloud","OVHcloud",[15,66,67],{},"Le fleuron français de l'hébergement. Il offre un excellent compromis entre fonctionnalités et prix compétitifs. C'est un choix idéal pour ceux qui privilégient la souveraineté européenne et une tarification transparente.",[35,69,71],{"id":70},"pourquoi-est-ce-si-populaire","Pourquoi est-ce si populaire ?",[15,73,74,75,79,80,83],{},"L'avantage majeur du Cloud est la ",[76,77,78],"strong",{},"scalabilité et la rapidité",". Besoin d'une base de données en quelques secondes ? Lancez une instance RDS. Besoin de gérer un pic de trafic soudain ? L'auto-scaling s'en occupe. Des outils comme ",[76,81,82],{},"Terraform"," permettent de gérer votre infrastructure via du code, rendant les déploiements rapides et reproductibles.",[35,85,87],{"id":86},"les-limites","Les Limites",[15,89,90],{},"Le Cloud peut être démesuré pour de petits projets ou des sites statiques. La complexité de gestion des réseaux (VPC), des rôles (IAM) et des divers services peut être chronophage.",[15,92,93],{},[76,94,95],{},"Exemple :",[97,98,99,106],"ul",{},[100,101,102,105],"li",{},[76,103,104],{},"Développeur Solo :"," Pour un simple blog ou une petite application, AWS pourrait vous coûter 20 à 50 €\u002Fmois en comptant l'EC2, la base RDS, les passerelles NAT et le stockage.",[100,107,108,111],{},[76,109,110],{},"Petite Équipe :"," Pour une architecture microservices avec 4-5 personnes, le Cloud est parfait pour le déploiement continu, le monitoring (CloudWatch) et la sécurité granulaire.",[22,113],{},[10,115,117],{"id":116},"le-vps-serveur-privé-virtuel","Le VPS (Serveur Privé Virtuel)",[15,119,120],{},"Le VPS est souvent le \"juste milieu\" idéal pour de nombreux développeurs. Il offre un environnement à coût fixe où vous savez exactement ce que vous payez chaque mois.",[35,122,124],{"id":123},"quest-ce-quun-vps","Qu'est-ce qu'un VPS ?",[15,126,127],{},"Un VPS est une machine virtuelle tournant sur un grand serveur physique. L'hébergeur (comme OVH ou DigitalOcean) prend une machine puissante (ex: 256 Go de RAM) et la partitionne en plusieurs \"petits\" serveurs virtuels (ex: 8 Go de RAM chacun) via des logiciels de virtualisation comme VMware ou KVM.",[15,129,130,133],{},[76,131,132],{},"Note importante :"," Les ressources d'un VPS sont souvent partagées. Si d'autres utilisateurs sur le même serveur physique consomment énormément de ressources, vous pourriez ressentir de légères baisses de performance, bien que la plupart des hébergeurs garantissent un seuil minimal.",[35,135,137],{"id":136},"fournisseurs-de-vps-populaires","Fournisseurs de VPS Populaires",[97,139,140,146,152,158],{},[100,141,142,145],{},[76,143,144],{},"OVHcloud :"," Tarifs compétitifs et infrastructure robuste en Europe.",[100,147,148,151],{},[76,149,150],{},"Hostinger :"," Très abordable pour débuter.",[100,153,154,157],{},[76,155,156],{},"Hetzner :"," Réputé pour son rapport performance\u002Fprix imbattable (Allemagne).",[100,159,160,163],{},[76,161,162],{},"DigitalOcean :"," Célèbre pour ses \"Droplets\" et son interface intuitive.",[22,165],{},[10,167,169],{"id":168},"le-serveur-dédié","Le Serveur Dédié",[15,171,172],{},"Un serveur dédié est exactement ce que son nom indique : vous louez une machine physique entière qui ne vous appartient qu'à vous seul. Pas de partage, pas de ralentissement dû aux voisins — juste de la puissance pure.",[35,174,176],{"id":175},"pourquoi-choisir-le-dédié","Pourquoi Choisir le Dédié ?",[97,178,179,185,191],{},[100,180,181,184],{},[76,182,183],{},"Performance :"," Vous disposez de 100 % du CPU, de la RAM et des entrées\u002Fsorties disque.",[100,186,187,190],{},[76,188,189],{},"Confidentialité et Contrôle :"," Comme vous ne partagez pas le matériel, c'est naturellement plus sécurisé pour les données sensibles.",[100,192,193,196],{},[76,194,195],{},"Personnalisation :"," Vous pouvez installer votre propre hyperviseur (comme Proxmox) et créer votre propre mini-cloud.",[15,198,199],{},"Par exemple, un serveur dédié avec 256 Go de RAM peut coûter environ 200 €\u002Fmois, alors que l'équivalent dans le Cloud coûterait des milliers d'euros. C'est donc idéal pour des bases de données massives, des serveurs de jeux ou l'hébergement de dizaines de petits sites.",[22,201],{},[10,203,205],{"id":204},"conclusion-lequel-choisir","Conclusion : Lequel choisir ?",[97,207,208,214,220],{},[100,209,210,213],{},[76,211,212],{},"Optez pour un VPS"," si vous êtes un développeur solo ou avez un petit projet avec un budget fixe. C'est le point de départ le plus simple et économique.",[100,215,216,219],{},[76,217,218],{},"Optez pour un Serveur Dédié"," si vous avez besoin de performances maximales, si vous souhaitez héberger de nombreux projets simultanément ou si vous voulez maîtriser vos coûts à grande échelle.",[100,221,222,225],{},[76,223,224],{},"Optez pour le Cloud"," si vous avez une audience mondiale, si vous exigez une haute disponibilité multi-régions ou si vous avez besoin de services avancés (IA, Big Data, auto-scaling extrême).",[15,227,228],{},"Le meilleur choix dépend de vos besoins spécifiques, de votre expertise technique et, surtout, de votre budget.",{"title":230,"searchDepth":231,"depth":231,"links":232},"",2,[233,240,241,242,243,244],{"id":37,"depth":231,"text":38,"children":234},[235,237,238,239],{"id":42,"depth":236,"text":43},3,{"id":49,"depth":236,"text":50},{"id":56,"depth":236,"text":57},{"id":63,"depth":236,"text":64},{"id":70,"depth":231,"text":71},{"id":86,"depth":231,"text":87},{"id":123,"depth":231,"text":124},{"id":136,"depth":231,"text":137},{"id":175,"depth":231,"text":176},"2026-04-13","Choisir la bonne infrastructure est crucial pour le succès de votre projet. Comparez VPS, Cloud et Serveurs Dédiés pour trouver la solution adaptée à vos besoins et à votre budget.","md","\u002Farticles\u002Fhosting_comparison\u002Fheader.png",{},true,"\u002Farticles\u002Ffr\u002Fvps_vs_cloud_vs_dedicated_server",{"title":5,"description":246},"articles\u002Ffr\u002FVps_vs_Cloud_vs_Dedicated_server",[255,256,257,258,259],"hosting","vps","cloud","serveur dédié","infrastructure","devops",null,"zdKWfjnIMWdDDOej9DH2Kha59oAyjipZm33qu6ds_PU",[264,1473,1628],{"id":265,"title":266,"body":267,"date":1462,"description":1463,"extension":247,"image":1464,"meta":1465,"navigation":250,"path":1466,"seo":1467,"stem":1468,"tags":1469,"type":260,"updatedAt":261,"__hash__":1472},"articlesFr\u002Farticles\u002Ffr\u002FK3s_ArgoCD.md","Comment créer un cluster K3s et installer ArgoCD sur un VPS ?",{"type":7,"value":268,"toc":1447},[269,272,276,279,282,285,289,292,303,306,362,373,383,387,398,401,437,440,443,465,468,507,510,517,520,523,545,548,572,575,586,589,595,599,603,606,610,613,624,627,631,635,638,642,645,688,700,704,711,716,858,861,877,881,895,898,906,910,947,957,961,964,1029,1033,1039,1277,1280,1296,1300,1318,1321,1339,1350,1354,1404,1408,1415,1422,1425,1431,1434,1440,1443],[15,270,271],{},"Dans cet article, nous allons voir comment créer un cluster K3s et installer ArgoCD dessus pour déployer nos applications plus facilement.",[10,273,275],{"id":274},"cest-quoi-k3s","C'est quoi K3s ?",[15,277,278],{},"K3s est une distribution Kubernetes légère. C'est une version de Kubernetes certifiée par la Cloud Native Computing Foundation (CNCF) avec des fonctionnalités ajoutées pour l'edge computing et l'IoT, mais elle est aussi parfaite pour les petits VPS.",[15,280,281],{},"Pourquoi ne pas utiliser K8s ? Parce que K8s est trop lourd pour un VPS standard. Par exemple, avec un VPS de 8 Go de RAM et 4 vCPUs, K8s peut avoir du mal à écrire correctement les logs et finir par crash. Ce n'est pas optimisé pour les petits serveurs.",[15,283,284],{},"Le binaire K3s ne fait que 478 Mo, et on peut le réduire encore plus avec la compression UPX. Il utilise SQLite comme base de données par défaut au lieu d'etcd. Vous pouvez changer la base de données, mais ce n'est pas recommandé pour des configurations simples. Alors que K8s utilise etcd et nécessite souvent une base externe, je préfère SQLite car c'est juste un fichier, c'est léger et facile à sauvegarder. On n'a pas besoin d'une architecture à la Netflix pour juste 2 ou 3 applications...",[35,286,288],{"id":287},"comment-k3s-fonctionne","Comment K3s fonctionne",[15,290,291],{},"K3s fonctionne comme une entreprise : vous avez plusieurs personnes pour plein de tâches, et si une personne est absente, le travail ne s'arrête pas. Vous avez :",[97,293,294,297,300],{},[100,295,296],{},"le Patron (control plane)",[100,298,299],{},"le manager (serveur K3s)",[100,301,302],{},"l'équipe (workers)",[15,304,305],{},"Vous avez plusieurs services pour votre application, principalement :",[97,307,308,314,320,326,332,338,344,350,356],{},[100,309,310,313],{},[76,311,312],{},"Deployment"," : utilisé pour déployer votre application avec un ou plusieurs conteneurs (utilise des images basées sur Docker ou Podman).",[100,315,316,319],{},[76,317,318],{},"StatefulSet"," : utilisé pour déployer votre application quand elle a besoin de sauvegarder son état ou son ID, typiquement pour les bases de données (Mongo, Postgres, MariaDB...).",[100,321,322,325],{},[76,323,324],{},"DaemonSet"," : utilisé pour déployer votre application sur tous les nœuds (workers) du cluster. Pratique pour les agents de monitoring ou de logs.",[100,327,328,331],{},[76,329,330],{},"PersistentVolume"," : comme un grand sac où vous pouvez créer un stockage pour vos données.",[100,333,334,337],{},[76,335,336],{},"PersistentVolumeClaim"," : c'est comme demander un sac ; vous définissez la taille et les propriétés que vous voulez, et le système vous en donne un.",[100,339,340,343],{},[76,341,342],{},"Service"," : comme une porte dans votre cluster ; vous pouvez exposer votre application à l'intérieur du cluster ou vers l'extérieur (ClusterIP, NodePort, LoadBalancer...).",[100,345,346,349],{},[76,347,348],{},"Ingress"," : comme votre porte d'entrée principale ; vous pouvez exposer votre application à l'extérieur avec un nom de domaine et un chemin. La porte d'entrée redirige la requête vers le service.",[100,351,352,355],{},[76,353,354],{},"Ingress Controller"," : un service qui gère les ingress (comme Nginx, Traefik, HAProxy...).",[100,357,358,361],{},[76,359,360],{},"Namespace"," : comme une boîte dans votre chambre ; vous pouvez mettre vos applications dans différentes boîtes pour ne pas les mélanger. C'est comme un dossier pour vos applications. Vous pouvez définir des règles de sécurité pour chaque boîte.",[15,363,364,365,368,369,372],{},"Vous pouvez créer tous ces ",[76,366,367],{},"\"services\""," avec un fichier appelé ",[76,370,371],{},"\"manifest\"",". Le manifest est juste un fichier YAML qui décrit l'état souhaité de votre application.",[15,374,375,376,382],{},"Vous pouvez lancer ces services avec la commande ",[76,377,378,379],{},"kubectl apply -f ",[380,381],"manifest",{},". Le système créera les services que vous avez décrits dans le fichier manifest.",[10,384,386],{"id":385},"installation-de-k3s","Installation de K3s",[15,388,389,390,393,394,397],{},"Maintenant que vous avez compris ce qu'est K3s, nous pouvons l'installer sur notre VPS et créer un cluster avec un seul nœud. Je recommande d'utiliser ",[76,391,392],{},"Ubuntu 22.04"," ou ",[76,395,396],{},"Debian 12\u002F13"," pour le VPS.",[15,399,400],{},"Pour installer votre premier cluster, vous pouvez utiliser la commande :",[402,403,407],"pre",{"className":404,"code":405,"language":406,"meta":230,"style":230},"language-bash shiki shiki-themes material-theme-lighter github-light monokai","curl -sfL https:\u002F\u002Fget.k3s.io | sh -\n","bash",[408,409,410],"code",{"__ignoreMap":230},[411,412,415,419,423,427,431,434],"span",{"class":413,"line":414},"line",1,[411,416,418],{"class":417},"ssU3Q","curl",[411,420,422],{"class":421},"sZ_HY"," -sfL",[411,424,426],{"class":425},"sqNgn"," https:\u002F\u002Fget.k3s.io",[411,428,430],{"class":429},"sBHfy"," |",[411,432,433],{"class":417}," sh",[411,435,436],{"class":425}," -\n",[15,438,439],{},"Cette commande installe, crée et configure tout ce dont vous avez besoin pour votre cluster. Elle installe le control plane, le manager et l'équipe. Vous pouvez ajouter plus de nœuds pour ajouter des ressources, ou plus de managers pour avoir de la haute disponibilité.",[15,441,442],{},"Pour être sûr que tout est prêt, vous pouvez lancer cette commande après avoir attendu environ 30 secondes (pour être sûr que tout est opérationnel) :",[402,444,446],{"className":404,"code":445,"language":406,"meta":230,"style":230},"sudo k3s kubectl get node\n",[408,447,448],{"__ignoreMap":230},[411,449,450,453,456,459,462],{"class":413,"line":414},[411,451,452],{"class":417},"sudo",[411,454,455],{"class":425}," k3s",[411,457,458],{"class":425}," kubectl",[411,460,461],{"class":425}," get",[411,463,464],{"class":425}," node\n",[15,466,467],{},"Si tout est prêt, vous verrez quelque chose comme ça :",[402,469,471],{"className":404,"code":470,"language":406,"meta":230,"style":230},"NAME    STATUS   ROLES                  AGE   VERSION\nnode1   Ready    control-plane,master   30s   v1.27.3-k3s2\n",[408,472,473,490],{"__ignoreMap":230},[411,474,475,478,481,484,487],{"class":413,"line":414},[411,476,477],{"class":417},"NAME",[411,479,480],{"class":425},"    STATUS",[411,482,483],{"class":425},"   ROLES",[411,485,486],{"class":425},"                  AGE",[411,488,489],{"class":425},"   VERSION\n",[411,491,492,495,498,501,504],{"class":413,"line":231},[411,493,494],{"class":417},"node1",[411,496,497],{"class":425},"   Ready",[411,499,500],{"class":425},"    control-plane,master",[411,502,503],{"class":425},"   30s",[411,505,506],{"class":425},"   v1.27.3-k3s2\n",[15,508,509],{},"Félicitations, vous avez installé votre premier cluster avec K3s !",[15,511,512,513,516],{},"Pour votre culture, K3s est livré avec un contrôleur d'ingress appelé ",[76,514,515],{},"Traefik",".",[15,518,519],{},"Traefik est un routeur Cloud Native utilisé dans beaucoup de projets. Dans notre cas, nous utilisons Traefik car il est robuste, léger et bien intégré avec K3s.",[15,521,522],{},"Si vous voulez utiliser un autre contrôleur d'ingress, vous pouvez l'installer avec une commande (Nginx par exemple) :",[402,524,526],{"className":404,"code":525,"language":406,"meta":230,"style":230},"sudo k3s kubectl apply -f https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fingress-nginx\u002Fcontroller-v1.8.0\u002Fdeploy\u002Fstatic\u002Fprovider\u002Fcloud\u002Fdeploy.yaml\n",[408,527,528],{"__ignoreMap":230},[411,529,530,532,534,536,539,542],{"class":413,"line":414},[411,531,452],{"class":417},[411,533,455],{"class":425},[411,535,458],{"class":425},[411,537,538],{"class":425}," apply",[411,540,541],{"class":421}," -f",[411,543,544],{"class":425}," https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes\u002Fingress-nginx\u002Fcontroller-v1.8.0\u002Fdeploy\u002Fstatic\u002Fprovider\u002Fcloud\u002Fdeploy.yaml\n",[15,546,547],{},"Vous pouvez vérifier si le contrôleur est bien installé avec :",[402,549,551],{"className":404,"code":550,"language":406,"meta":230,"style":230},"sudo k3s kubectl get pod -n ingress-nginx\n",[408,552,553],{"__ignoreMap":230},[411,554,555,557,559,561,563,566,569],{"class":413,"line":414},[411,556,452],{"class":417},[411,558,455],{"class":425},[411,560,458],{"class":425},[411,562,461],{"class":425},[411,564,565],{"class":425}," pod",[411,567,568],{"class":421}," -n",[411,570,571],{"class":425}," ingress-nginx\n",[15,573,574],{},"Pour Kubernetes, il existe d'autres contrôleurs d'Ingress :",[97,576,577,580,583],{},[100,578,579],{},"Kong",[100,581,582],{},"HAProxy",[100,584,585],{},"Istio",[15,587,588],{},"Et bien d'autres.",[590,591,592],"warning",{},[15,593,594],{},"Pour un projet sérieux, un SaaS ou une production en entreprise, je recommande d'utiliser une API Gateway car, à long terme, la ressource Ingress va être remplacée par la Gateway API. Vous pouvez utiliser Kong par exemple.",[10,596,598],{"id":597},"argocd","ArgoCD",[35,600,602],{"id":601},"cest-quoi-argocd","C'est quoi ArgoCD ?",[15,604,605],{},"ArgoCD est un outil de Continuous Delivery (CD) déclaratif et GitOps pour Kubernetes. C'est un projet de la CNCF utilisé pour déployer et gérer des applications sur des clusters Kubernetes. Il compare l'état souhaité (dans Git) avec l'état actuel dans le cluster et synchronise les deux.",[10,607,609],{"id":608},"comment-ça-marche","Comment ça marche ?",[15,611,612],{},"C'est très simple : vous avez votre dépôt sur Git et ArgoCD va récupérer la dernière version et la déployer dans votre cluster. Vous définissez l'état souhaité dans votre dépôt et ArgoCD s'occupe du reste.",[15,614,615,616,619,620,623],{},"Il y a une partie ",[76,617,618],{},"Web UI"," pour voir l'état de votre cluster, et une partie ",[76,621,622],{},"CLI"," (interface en ligne de commande) pour gérer le tout depuis votre terminal.",[15,625,626],{},"Avec ces deux outils, vous pouvez gérer votre cluster, créer des projets et faire des rollbacks si besoin.",[10,628,630],{"id":629},"installation-dargocd","Installation d'ArgoCD",[35,632,634],{"id":633},"pour-le-https-vous-avez-besoin-dun-nom-de-domaine","Pour le HTTPS, vous avez besoin d'un nom de domaine",[15,636,637],{},"Si vous voulez utiliser ArgoCD avec HTTPS, vous avez besoin d'un nom de domaine pointant vers l'IP de votre VPS. Vous pouvez l'utiliser en HTTP, mais ce n'est pas recommandé pour la production.",[35,639,641],{"id":640},"cluster-issuer","Cluster Issuer",[15,643,644],{},"Pour utiliser le HTTPS avec ArgoCD, vous avez besoin d'un ClusterIssuer pour générer des certificats SSL.",[402,646,648],{"className":404,"code":647,"language":406,"meta":230,"style":230},"kubectl apply -f https:\u002F\u002Fgithub.com\u002Fcert-manager\u002Fcert-manager\u002Freleases\u002Fdownload\u002Fv1.13.3\u002Fcert-manager.yaml\n\n# Attendez que les 3 pods soient en cours d'exécution\nkubectl get pods -n cert-manager\n",[408,649,650,662,667,673],{"__ignoreMap":230},[411,651,652,655,657,659],{"class":413,"line":414},[411,653,654],{"class":417},"kubectl",[411,656,538],{"class":425},[411,658,541],{"class":421},[411,660,661],{"class":425}," https:\u002F\u002Fgithub.com\u002Fcert-manager\u002Fcert-manager\u002Freleases\u002Fdownload\u002Fv1.13.3\u002Fcert-manager.yaml\n",[411,663,664],{"class":413,"line":231},[411,665,666],{"emptyLinePlaceholder":250},"\n",[411,668,669],{"class":413,"line":236},[411,670,672],{"class":671},"skxtS","# Attendez que les 3 pods soient en cours d'exécution\n",[411,674,676,678,680,683,685],{"class":413,"line":675},4,[411,677,654],{"class":417},[411,679,461],{"class":425},[411,681,682],{"class":425}," pods",[411,684,568],{"class":421},[411,686,687],{"class":425}," cert-manager\n",[590,689,690],{},[15,691,692,693,516],{},"Si vous utilisez Traefik ou Nginx, vous devrez peut-être le configurer spécifiquement pour ArgoCD. Vous trouverez plus d'informations sur la ",[694,695,699],"a",{"href":696,"rel":697},"https:\u002F\u002Fargoproj.github.io\u002Fargo-cd\u002Foperator-manual\u002Fingress\u002F",[698],"nofollow","documentation d'ArgoCD",[40,701,703],{"id":702},"créer-lissuer-et-lappliquer","Créer l'issuer et l'appliquer",[15,705,706,707,710],{},"Créez un fichier nommé ",[408,708,709],{},"cluster-issuer.yaml"," et appliquez-le. Dans notre cas, nous utilisons Let's Encrypt et Traefik comme contrôleur d'ingress.",[590,712,713],{},[15,714,715],{},"N'oubliez pas de changer l'email dans le fichier.",[402,717,721],{"className":718,"code":719,"language":720,"meta":230,"style":230},"language-yaml shiki shiki-themes material-theme-lighter github-light monokai","apiVersion: cert-manager.io\u002Fv1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-prod\nspec:\n  acme:\n    server: https:\u002F\u002Facme-v02.api.letsencrypt.org\u002Fdirectory\n    email: votre-email@email.fr\n    privateKeySecretRef:\n      name: letsencrypt-prod\n    solvers:\n      - http01:\n          ingress:\n            class: traefik\n","yaml",[408,722,723,736,746,754,764,772,780,791,802,810,820,828,839,847],{"__ignoreMap":230},[411,724,725,729,733],{"class":413,"line":414},[411,726,728],{"class":727},"s5svD","apiVersion",[411,730,732],{"class":731},"sWZ6u",":",[411,734,735],{"class":425}," cert-manager.io\u002Fv1\n",[411,737,738,741,743],{"class":413,"line":231},[411,739,740],{"class":727},"kind",[411,742,732],{"class":731},[411,744,745],{"class":425}," ClusterIssuer\n",[411,747,748,751],{"class":413,"line":236},[411,749,750],{"class":727},"metadata",[411,752,753],{"class":731},":\n",[411,755,756,759,761],{"class":413,"line":675},[411,757,758],{"class":727},"  name",[411,760,732],{"class":731},[411,762,763],{"class":425}," letsencrypt-prod\n",[411,765,767,770],{"class":413,"line":766},5,[411,768,769],{"class":727},"spec",[411,771,753],{"class":731},[411,773,775,778],{"class":413,"line":774},6,[411,776,777],{"class":727},"  acme",[411,779,753],{"class":731},[411,781,783,786,788],{"class":413,"line":782},7,[411,784,785],{"class":727},"    server",[411,787,732],{"class":731},[411,789,790],{"class":425}," https:\u002F\u002Facme-v02.api.letsencrypt.org\u002Fdirectory\n",[411,792,794,797,799],{"class":413,"line":793},8,[411,795,796],{"class":727},"    email",[411,798,732],{"class":731},[411,800,801],{"class":425}," votre-email@email.fr\n",[411,803,805,808],{"class":413,"line":804},9,[411,806,807],{"class":727},"    privateKeySecretRef",[411,809,753],{"class":731},[411,811,813,816,818],{"class":413,"line":812},10,[411,814,815],{"class":727},"      name",[411,817,732],{"class":731},[411,819,763],{"class":425},[411,821,823,826],{"class":413,"line":822},11,[411,824,825],{"class":727},"    solvers",[411,827,753],{"class":731},[411,829,831,834,837],{"class":413,"line":830},12,[411,832,833],{"class":731},"      -",[411,835,836],{"class":727}," http01",[411,838,753],{"class":731},[411,840,842,845],{"class":413,"line":841},13,[411,843,844],{"class":727},"          ingress",[411,846,753],{"class":731},[411,848,850,853,855],{"class":413,"line":849},14,[411,851,852],{"class":727},"            class",[411,854,732],{"class":731},[411,856,857],{"class":425}," traefik\n",[15,859,860],{},"Appliquez le fichier :",[402,862,864],{"className":404,"code":863,"language":406,"meta":230,"style":230},"kubectl apply -f cluster-issuer.yaml\n",[408,865,866],{"__ignoreMap":230},[411,867,868,870,872,874],{"class":413,"line":414},[411,869,654],{"class":417},[411,871,538],{"class":425},[411,873,541],{"class":421},[411,875,876],{"class":425}," cluster-issuer.yaml\n",[40,878,880],{"id":879},"vérifier-si-lissuer-est-prêt","Vérifier si l'issuer est prêt",[402,882,884],{"className":404,"code":883,"language":406,"meta":230,"style":230},"kubectl get clusterissuer\n",[408,885,886],{"__ignoreMap":230},[411,887,888,890,892],{"class":413,"line":414},[411,889,654],{"class":417},[411,891,461],{"class":425},[411,893,894],{"class":425}," clusterissuer\n",[15,896,897],{},"Si l'issuer est prêt, vous verrez :",[402,899,904],{"className":900,"code":902,"language":903},[901],"language-text","NAME               READY   AGE\nletsencrypt-prod   True    2m\n","text",[408,905,902],{"__ignoreMap":230},[40,907,909],{"id":908},"installer-argocd","Installer ArgoCD",[402,911,913],{"className":404,"code":912,"language":406,"meta":230,"style":230},"kubectl create namespace argocd\nkubectl apply --server-side -n argocd -f https:\u002F\u002Fraw.githubusercontent.com\u002Fargoproj\u002Fargo-cd\u002Fstable\u002Fmanifests\u002Finstall.yaml\n",[408,914,915,928],{"__ignoreMap":230},[411,916,917,919,922,925],{"class":413,"line":414},[411,918,654],{"class":417},[411,920,921],{"class":425}," create",[411,923,924],{"class":425}," namespace",[411,926,927],{"class":425}," argocd\n",[411,929,930,932,934,937,939,942,944],{"class":413,"line":231},[411,931,654],{"class":417},[411,933,538],{"class":425},[411,935,936],{"class":421}," --server-side",[411,938,568],{"class":421},[411,940,941],{"class":425}," argocd",[411,943,541],{"class":421},[411,945,946],{"class":425}," https:\u002F\u002Fraw.githubusercontent.com\u002Fargoproj\u002Fargo-cd\u002Fstable\u002Fmanifests\u002Finstall.yaml\n",[948,949,950],"tips",{},[15,951,952,953,956],{},"On utilise ",[76,954,955],{},"--server-side"," car le fichier manifest est trop volumineux et peut causer des erreurs lors d'un apply classique.",[40,958,960],{"id":959},"patcher-argocd-pour-le-mode-non-sécurisé","Patcher ArgoCD pour le mode non-sécurisé",[15,962,963],{},"Par défaut, ArgoCD utilise le HTTPS avec son propre certificat auto-signé. Nous voulons le patcher pour autoriser les communications HTTP non-sécurisées en interne afin que notre Ingress (avec notre vrai certificat) puisse lui parler facilement sur le port 80.",[402,965,967],{"className":404,"code":966,"language":406,"meta":230,"style":230},"kubectl patch configmap argocd-cmd-params-cm -n argocd --type merge -p '{\"data\": {\"server.insecure\": \"true\"}}'\n\nkubectl rollout restart deployment argocd-server -n argocd\n",[408,968,969,1005,1009],{"__ignoreMap":230},[411,970,971,973,976,979,982,984,986,989,992,995,999,1002],{"class":413,"line":414},[411,972,654],{"class":417},[411,974,975],{"class":425}," patch",[411,977,978],{"class":425}," configmap",[411,980,981],{"class":425}," argocd-cmd-params-cm",[411,983,568],{"class":421},[411,985,941],{"class":425},[411,987,988],{"class":421}," --type",[411,990,991],{"class":425}," merge",[411,993,994],{"class":421}," -p",[411,996,998],{"class":997},"ssona"," '",[411,1000,1001],{"class":425},"{\"data\": {\"server.insecure\": \"true\"}}",[411,1003,1004],{"class":997},"'\n",[411,1006,1007],{"class":413,"line":231},[411,1008,666],{"emptyLinePlaceholder":250},[411,1010,1011,1013,1016,1019,1022,1025,1027],{"class":413,"line":236},[411,1012,654],{"class":417},[411,1014,1015],{"class":425}," rollout",[411,1017,1018],{"class":425}," restart",[411,1020,1021],{"class":425}," deployment",[411,1023,1024],{"class":425}," argocd-server",[411,1026,568],{"class":421},[411,1028,927],{"class":425},[40,1030,1032],{"id":1031},"exposer-argocd-avec-traefik","Exposer ArgoCD avec Traefik",[15,1034,706,1035,1038],{},[408,1036,1037],{},"argocd-server-ingress.yaml"," :",[402,1040,1042],{"className":718,"code":1041,"language":720,"meta":230,"style":230},"apiVersion: networking.k8s.io\u002Fv1\nkind: Ingress\nmetadata:\n  name: argocd-server-ingress\n  namespace: argocd\n  annotations:\n    cert-manager.io\u002Fcluster-issuer: letsencrypt-prod\n    traefik.ingress.kubernetes.io\u002Frouter.entrypoints: websecure\n    traefik.ingress.kubernetes.io\u002Frouter.tls: \"true\"\nspec:\n  rules:\n    - host: argocd.votredomaine.fr\n      http:\n        paths:\n          - path: \u002F\n            pathType: Prefix\n            backend:\n              service:\n                name: argocd-server\n                port:\n                  number: 80\n  tls:\n    - hosts:\n        - argocd.votredomaine.fr\n      secretName: argocd-server-tls\n",[408,1043,1044,1053,1062,1068,1077,1086,1093,1102,1112,1128,1134,1141,1154,1161,1168,1182,1193,1201,1209,1220,1228,1240,1248,1258,1266],{"__ignoreMap":230},[411,1045,1046,1048,1050],{"class":413,"line":414},[411,1047,728],{"class":727},[411,1049,732],{"class":731},[411,1051,1052],{"class":425}," networking.k8s.io\u002Fv1\n",[411,1054,1055,1057,1059],{"class":413,"line":231},[411,1056,740],{"class":727},[411,1058,732],{"class":731},[411,1060,1061],{"class":425}," Ingress\n",[411,1063,1064,1066],{"class":413,"line":236},[411,1065,750],{"class":727},[411,1067,753],{"class":731},[411,1069,1070,1072,1074],{"class":413,"line":675},[411,1071,758],{"class":727},[411,1073,732],{"class":731},[411,1075,1076],{"class":425}," argocd-server-ingress\n",[411,1078,1079,1082,1084],{"class":413,"line":766},[411,1080,1081],{"class":727},"  namespace",[411,1083,732],{"class":731},[411,1085,927],{"class":425},[411,1087,1088,1091],{"class":413,"line":774},[411,1089,1090],{"class":727},"  annotations",[411,1092,753],{"class":731},[411,1094,1095,1098,1100],{"class":413,"line":782},[411,1096,1097],{"class":727},"    cert-manager.io\u002Fcluster-issuer",[411,1099,732],{"class":731},[411,1101,763],{"class":425},[411,1103,1104,1107,1109],{"class":413,"line":793},[411,1105,1106],{"class":727},"    traefik.ingress.kubernetes.io\u002Frouter.entrypoints",[411,1108,732],{"class":731},[411,1110,1111],{"class":425}," websecure\n",[411,1113,1114,1117,1119,1122,1125],{"class":413,"line":804},[411,1115,1116],{"class":727},"    traefik.ingress.kubernetes.io\u002Frouter.tls",[411,1118,732],{"class":731},[411,1120,1121],{"class":997}," \"",[411,1123,1124],{"class":425},"true",[411,1126,1127],{"class":997},"\"\n",[411,1129,1130,1132],{"class":413,"line":812},[411,1131,769],{"class":727},[411,1133,753],{"class":731},[411,1135,1136,1139],{"class":413,"line":822},[411,1137,1138],{"class":727},"  rules",[411,1140,753],{"class":731},[411,1142,1143,1146,1149,1151],{"class":413,"line":830},[411,1144,1145],{"class":731},"    -",[411,1147,1148],{"class":727}," host",[411,1150,732],{"class":731},[411,1152,1153],{"class":425}," argocd.votredomaine.fr\n",[411,1155,1156,1159],{"class":413,"line":841},[411,1157,1158],{"class":727},"      http",[411,1160,753],{"class":731},[411,1162,1163,1166],{"class":413,"line":849},[411,1164,1165],{"class":727},"        paths",[411,1167,753],{"class":731},[411,1169,1171,1174,1177,1179],{"class":413,"line":1170},15,[411,1172,1173],{"class":731},"          -",[411,1175,1176],{"class":727}," path",[411,1178,732],{"class":731},[411,1180,1181],{"class":425}," \u002F\n",[411,1183,1185,1188,1190],{"class":413,"line":1184},16,[411,1186,1187],{"class":727},"            pathType",[411,1189,732],{"class":731},[411,1191,1192],{"class":425}," Prefix\n",[411,1194,1196,1199],{"class":413,"line":1195},17,[411,1197,1198],{"class":727},"            backend",[411,1200,753],{"class":731},[411,1202,1204,1207],{"class":413,"line":1203},18,[411,1205,1206],{"class":727},"              service",[411,1208,753],{"class":731},[411,1210,1212,1215,1217],{"class":413,"line":1211},19,[411,1213,1214],{"class":727},"                name",[411,1216,732],{"class":731},[411,1218,1219],{"class":425}," argocd-server\n",[411,1221,1223,1226],{"class":413,"line":1222},20,[411,1224,1225],{"class":727},"                port",[411,1227,753],{"class":731},[411,1229,1231,1234,1236],{"class":413,"line":1230},21,[411,1232,1233],{"class":727},"                  number",[411,1235,732],{"class":731},[411,1237,1239],{"class":1238},"sYBsF"," 80\n",[411,1241,1243,1246],{"class":413,"line":1242},22,[411,1244,1245],{"class":727},"  tls",[411,1247,753],{"class":731},[411,1249,1251,1253,1256],{"class":413,"line":1250},23,[411,1252,1145],{"class":731},[411,1254,1255],{"class":727}," hosts",[411,1257,753],{"class":731},[411,1259,1261,1264],{"class":413,"line":1260},24,[411,1262,1263],{"class":731},"        -",[411,1265,1153],{"class":425},[411,1267,1269,1272,1274],{"class":413,"line":1268},25,[411,1270,1271],{"class":727},"      secretName",[411,1273,732],{"class":731},[411,1275,1276],{"class":425}," argocd-server-tls\n",[15,1278,1279],{},"Appliquez-le :",[402,1281,1283],{"className":404,"code":1282,"language":406,"meta":230,"style":230},"kubectl apply -f argocd-server-ingress.yaml\n",[408,1284,1285],{"__ignoreMap":230},[411,1286,1287,1289,1291,1293],{"class":413,"line":414},[411,1288,654],{"class":417},[411,1290,538],{"class":425},[411,1292,541],{"class":421},[411,1294,1295],{"class":425}," argocd-server-ingress.yaml\n",[40,1297,1299],{"id":1298},"vérifier-si-lingress-et-les-certificats-sont-prêts","Vérifier si l'ingress et les certificats sont prêts",[402,1301,1303],{"className":404,"code":1302,"language":406,"meta":230,"style":230},"kubectl get ingress -n argocd\n",[408,1304,1305],{"__ignoreMap":230},[411,1306,1307,1309,1311,1314,1316],{"class":413,"line":414},[411,1308,654],{"class":417},[411,1310,461],{"class":425},[411,1312,1313],{"class":425}," ingress",[411,1315,568],{"class":421},[411,1317,927],{"class":425},[15,1319,1320],{},"Vous devriez voir votre hôte et l'adresse IP. Ensuite, vérifiez le certificat :",[402,1322,1324],{"className":404,"code":1323,"language":406,"meta":230,"style":230},"kubectl get certificate -n argocd\n",[408,1325,1326],{"__ignoreMap":230},[411,1327,1328,1330,1332,1335,1337],{"class":413,"line":414},[411,1329,654],{"class":417},[411,1331,461],{"class":425},[411,1333,1334],{"class":425}," certificate",[411,1336,568],{"class":421},[411,1338,927],{"class":425},[15,1340,1341,1342,1345,1346,1349],{},"Si ",[408,1343,1344],{},"READY"," est à ",[408,1347,1348],{},"True",", c'est tout bon !",[40,1351,1353],{"id":1352},"récupérer-le-mot-de-passe-admin-initial","Récupérer le mot de passe admin initial",[402,1355,1357],{"className":404,"code":1356,"language":406,"meta":230,"style":230},"kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d; echo\n",[408,1358,1359],{"__ignoreMap":230},[411,1360,1361,1363,1365,1367,1369,1372,1375,1378,1381,1384,1387,1389,1391,1394,1397,1400],{"class":413,"line":414},[411,1362,654],{"class":417},[411,1364,568],{"class":421},[411,1366,941],{"class":425},[411,1368,461],{"class":425},[411,1370,1371],{"class":425}," secret",[411,1373,1374],{"class":425}," argocd-initial-admin-secret",[411,1376,1377],{"class":421}," -o",[411,1379,1380],{"class":425}," jsonpath=",[411,1382,1383],{"class":997},"\"",[411,1385,1386],{"class":425},"{.data.password}",[411,1388,1383],{"class":997},[411,1390,430],{"class":429},[411,1392,1393],{"class":417}," base64",[411,1395,1396],{"class":421}," -d",[411,1398,1399],{"class":731},";",[411,1401,1403],{"class":1402},"sOhXc"," echo\n",[35,1405,1407],{"id":1406},"première-connexion-à-argocd","Première connexion à ArgoCD",[15,1409,1410,1411,1414],{},"Allez sur ",[408,1412,1413],{},"https:\u002F\u002Fargocd.votredomaine.fr"," (remplacez par votre domaine).",[15,1416,1417],{},[1418,1419],"img",{"alt":1420,"src":1421},"argocd first login","\u002Farticles\u002Fk3s_argocd\u002Fargocd-home.png",[15,1423,1424],{},"Identifiants :",[402,1426,1429],{"className":1427,"code":1428,"language":903},[901],"Username: admin\nPassword: [LE_MOT_DE_PASSE_RECUPERE_PRECEDEMMENT]\n",[408,1430,1428],{"__ignoreMap":230},[15,1432,1433],{},"Après la connexion, vous verrez votre tableau de bord vide :",[15,1435,1436],{},[1418,1437],{"alt":1438,"src":1439},"argocd dashboard","\u002Farticles\u002Fk3s_argocd\u002Fargocd-dashboard.png",[15,1441,1442],{},"Félicitations ! Vous avez installé avec succès ArgoCD sur votre cluster K3s. Vous pouvez maintenant commencer à déployer vos applications en mode GitOps !",[1444,1445,1446],"style",{},"html pre.shiki code .ssU3Q, html code.shiki .ssU3Q{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#A6E22E}html pre.shiki code .sZ_HY, html code.shiki .sZ_HY{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#AE81FF}html pre.shiki code .sqNgn, html code.shiki .sqNgn{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#E6DB74}html pre.shiki code .sBHfy, html code.shiki .sBHfy{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F92672}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .skxtS, html code.shiki .skxtS{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#88846F;--shiki-dark-font-style:inherit}html pre.shiki code .s5svD, html code.shiki .s5svD{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#F92672}html pre.shiki code .sWZ6u, html code.shiki .sWZ6u{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#F8F8F2}html pre.shiki code .ssona, html code.shiki .ssona{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#E6DB74}html pre.shiki code .sYBsF, html code.shiki .sYBsF{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#AE81FF}html pre.shiki code .sOhXc, html code.shiki .sOhXc{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#66D9EF}",{"title":230,"searchDepth":231,"depth":231,"links":1448},[1449,1450,1451,1452,1461],{"id":287,"depth":231,"text":288},{"id":601,"depth":231,"text":602},{"id":633,"depth":231,"text":634},{"id":640,"depth":231,"text":641,"children":1453},[1454,1455,1456,1457,1458,1459,1460],{"id":702,"depth":236,"text":703},{"id":879,"depth":236,"text":880},{"id":908,"depth":236,"text":909},{"id":959,"depth":236,"text":960},{"id":1031,"depth":236,"text":1032},{"id":1298,"depth":236,"text":1299},{"id":1352,"depth":236,"text":1353},{"id":1406,"depth":231,"text":1407},"2026-04-29","Dans cet article, nous allons voir comment créer un cluster K3s et y installer ArgoCD pour déployer nos applications.","\u002Farticles\u002Fk3s_argocd\u002Fheader.png",{},"\u002Farticles\u002Ffr\u002Fk3s_argocd",{"title":266,"description":1463},"articles\u002Ffr\u002FK3s_ArgoCD",[1470,1471,597],"kubernetes","k3s","rnG2cwxZNaj3F68HyEV6prS12xUsLBzegg7kAlFL24w",{"id":4,"title":5,"body":1474,"date":245,"description":246,"extension":247,"image":248,"meta":1625,"navigation":250,"path":251,"seo":1626,"stem":253,"tags":1627,"type":260,"updatedAt":261,"__hash__":262},{"type":7,"value":1475,"toc":1612},[1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1516,1518,1520,1524,1534,1536,1538,1540,1542,1544,1548,1550,1568,1570,1572,1574,1576,1590,1592,1594,1596,1610],[10,1477,13],{"id":12},[15,1479,17],{},[15,1481,20],{},[22,1483],{},[10,1485,27],{"id":26},[15,1487,30],{},[15,1489,33],{},[35,1491,38],{"id":37},[40,1493,43],{"id":42},[15,1495,46],{},[40,1497,50],{"id":49},[15,1499,53],{},[40,1501,57],{"id":56},[15,1503,60],{},[40,1505,64],{"id":63},[15,1507,67],{},[35,1509,71],{"id":70},[15,1511,74,1512,79,1514,83],{},[76,1513,78],{},[76,1515,82],{},[35,1517,87],{"id":86},[15,1519,90],{},[15,1521,1522],{},[76,1523,95],{},[97,1525,1526,1530],{},[100,1527,1528,105],{},[76,1529,104],{},[100,1531,1532,111],{},[76,1533,110],{},[22,1535],{},[10,1537,117],{"id":116},[15,1539,120],{},[35,1541,124],{"id":123},[15,1543,127],{},[15,1545,1546,133],{},[76,1547,132],{},[35,1549,137],{"id":136},[97,1551,1552,1556,1560,1564],{},[100,1553,1554,145],{},[76,1555,144],{},[100,1557,1558,151],{},[76,1559,150],{},[100,1561,1562,157],{},[76,1563,156],{},[100,1565,1566,163],{},[76,1567,162],{},[22,1569],{},[10,1571,169],{"id":168},[15,1573,172],{},[35,1575,176],{"id":175},[97,1577,1578,1582,1586],{},[100,1579,1580,184],{},[76,1581,183],{},[100,1583,1584,190],{},[76,1585,189],{},[100,1587,1588,196],{},[76,1589,195],{},[15,1591,199],{},[22,1593],{},[10,1595,205],{"id":204},[97,1597,1598,1602,1606],{},[100,1599,1600,213],{},[76,1601,212],{},[100,1603,1604,219],{},[76,1605,218],{},[100,1607,1608,225],{},[76,1609,224],{},[15,1611,228],{},{"title":230,"searchDepth":231,"depth":231,"links":1613},[1614,1620,1621,1622,1623,1624],{"id":37,"depth":231,"text":38,"children":1615},[1616,1617,1618,1619],{"id":42,"depth":236,"text":43},{"id":49,"depth":236,"text":50},{"id":56,"depth":236,"text":57},{"id":63,"depth":236,"text":64},{"id":70,"depth":231,"text":71},{"id":86,"depth":231,"text":87},{"id":123,"depth":231,"text":124},{"id":136,"depth":231,"text":137},{"id":175,"depth":231,"text":176},{},{"title":5,"description":246},[255,256,257,258,259],{"id":1629,"title":1630,"body":1631,"date":2464,"description":2465,"extension":247,"image":2466,"meta":2467,"navigation":250,"path":2468,"seo":2469,"stem":2470,"tags":2471,"type":260,"updatedAt":261,"__hash__":2473},"articlesFr\u002Farticles\u002Ffr\u002Freverse_proxy.md","Qu'est-ce qu'un Reverse Proxy et quel est son rôle dans votre infrastructure ?",{"type":7,"value":1632,"toc":2438},[1633,1636,1639,1642,1646,1653,1656,1663,1689,1693,1696,1700,1703,1738,1742,1760,1762,1766,1769,1772,1778,1801,1804,1807,1834,1837,1840,1860,1863,1866,1886,1888,1892,1895,1899,1902,1916,1920,1923,1936,1940,1943,1950,1954,1957,1964,1966,1970,1976,1980,1983,1988,2020,2029,2084,2088,2091,2095,2114,2120,2150,2154,2157,2165,2327,2331,2334,2342,2392,2394,2398,2401,2435],[10,1634,1630],{"id":1635},"quest-ce-quun-reverse-proxy-et-quel-est-son-rôle-dans-votre-infrastructure",[15,1637,1638],{},"Un reverse proxy est probablement votre meilleur ami lorsqu'il s'agit d'améliorer les performances de votre application rapidement et facilement — sans écrire de code complexe ou utiliser de tours de magie.",[15,1640,1641],{},"Cependant, configurer un reverse proxy peut parfois sembler fastidieux. Pourtant, cela reste l'un des meilleurs moyens d'exposer vos applications de manière sécurisée et efficace à votre audience.",[35,1643,1645],{"id":1644},"️-reverse-proxy-cest-quoi","🛡️ Reverse Proxy — C'est quoi ?",[15,1647,1648,1649,1652],{},"Un reverse proxy, c'est comme ",[76,1650,1651],{},"Gandalf",". J'aime beaucoup cette analogie : quand le trafic arrive sur votre serveur, le reverse proxy se tient à la porte et décide qui peut entrer et où il doit aller.",[15,1654,1655],{},"En général, le trafic passe par HTTP ou HTTPS (ports 80 et 443). Le rôle d'un reverse proxy est d'inspecter les requêtes entrantes (basées sur l'adresse IP, le nom de domaine, etc.) et de les acheminer vers la bonne application — tant que cette application est connue et configurée.",[15,1657,1658,1659,1662],{},"Considérez-le comme le ",[76,1660,1661],{},"\"Google Maps\""," de votre serveur. Il sait où envoyer le trafic et comment le gérer. Il offre également de nombreuses fonctionnalités puissantes telles que :",[97,1664,1665,1671,1677,1683],{},[100,1666,1667,1670],{},[76,1668,1669],{},"Mise en cache (Caching)"," : Stockage de copies de contenu pour les servir plus rapidement.",[100,1672,1673,1676],{},[76,1674,1675],{},"Sécurité"," : Masquage de l'IP interne de votre serveur et protection contre les attaques DDoS.",[100,1678,1679,1682],{},[76,1680,1681],{},"Terminaison SSL"," : Gestion du chiffrement HTTPS pour que votre application n'ait pas à le faire.",[100,1684,1685,1688],{},[76,1686,1687],{},"Optimisation des performances"," : Compression des données et gestion des connexions.",[35,1690,1692],{"id":1691},"choisir-un-reverse-proxy","🚦 Choisir un Reverse Proxy",[15,1694,1695],{},"Choisir le bon reverse proxy est une décision importante. Vous devez tenir compte de plusieurs facteurs en fonction de vos besoins spécifiques.",[40,1697,1699],{"id":1698},"_1-votre-architecture","1. Votre Architecture",[15,1701,1702],{},"Votre infrastructure détermine quel outil convient le mieux :",[97,1704,1705,1714,1727],{},[100,1706,1707,1710,1711,1713],{},[76,1708,1709],{},"Docker Swarm \u002F Kubernetes"," : ",[76,1712,515],{}," est souvent le meilleur choix ici. Il peut découvrir automatiquement vos services via des labels, exposant votre application sans fichiers de configuration manuels.",[100,1715,1716,1710,1719,1722,1723,1726],{},[76,1717,1718],{},"VPS Classique (Sans Docker)",[76,1720,1721],{},"Nginx"," et ",[76,1724,1725],{},"Caddy"," sont d'excellents choix en 2026. Ils sont rapides à installer et stables.",[100,1728,1729,1710,1732,393,1735,1737],{},[76,1730,1731],{},"Production à Haute Échelle",[76,1733,1734],{},"NGINX",[76,1736,582],{}," sont les standards de l'industrie pour les charges lourdes et un contrôle précis.",[40,1739,1741],{"id":1740},"_2-votre-trafic-et-vos-besoins","2. Votre Trafic et vos Besoins",[97,1743,1744,1752],{},[100,1745,1746,1710,1749,1751],{},[76,1747,1748],{},"Petits Projets \u002F Outils Personnel",[76,1750,1725],{}," est un excellent choix. C'est simple, rapide et gère l'HTTPS automatiquement.",[100,1753,1754,1710,1757,1759],{},[76,1755,1756],{},"Niveau Professionnel \u002F Contrôle Précis",[76,1758,1721],{}," est un incontournable. Il nécessite plus de configuration mais vous donne un contrôle total sur chaque aspect de votre trafic.",[22,1761],{},[35,1763,1765],{"id":1764},"️-quels-reverse-proxies-existent","🛠️ Quels Reverse Proxies Existent ?",[15,1767,1768],{},"Explorons les avantages et les inconvénients des solutions les plus populaires.",[40,1770,1725],{"id":1771},"caddy",[15,1773,1774,1775,516],{},"Caddy est un reverse proxy moderne écrit en Go. Ses points forts sont la ",[76,1776,1777],{},"simplicité et la rapidité",[97,1779,1780,1786,1795],{},[100,1781,1782,1785],{},[76,1783,1784],{},"Installation"," : Extrêmement rapide (souvent une seule commande).",[100,1787,1788,1791,1792,516],{},[76,1789,1790],{},"Configuration"," : Très facile — vous n'avez besoin que d'un seul fichier appelé ",[408,1793,1794],{},"Caddyfile",[100,1796,1797,1800],{},[76,1798,1799],{},"HTTPS"," : Il gère les certificats SSL (via Let's Encrypt) automatiquement par défaut.",[40,1802,1734],{"id":1803},"nginx",[15,1805,1806],{},"Nginx est le reverse proxy le plus utilisé au monde. Il offre un équilibre parfait entre performance et flexibilité.",[97,1808,1809,1815,1821],{},[100,1810,1811,1814],{},[76,1812,1813],{},"Polyvalence"," : Fonctionne bien pour tout, des petits blogs aux géants de l'industrie.",[100,1816,1817,1820],{},[76,1818,1819],{},"Évolutivité"," : S'adapte très efficacement aux systèmes à fort trafic.",[100,1822,1823,1825,1826,1829,1830,1833],{},[76,1824,1790],{}," : Utilise des fichiers ",[408,1827,1828],{},".conf"," (généralement situés dans ",[408,1831,1832],{},"\u002Fetc\u002Fnginx\u002F","). C'est plus verbeux que Caddy mais très puissant.",[40,1835,515],{"id":1836},"traefik",[15,1838,1839],{},"Traefik a été conçu pour l'ère moderne des microservices et des conteneurs.",[97,1841,1842,1848,1854],{},[100,1843,1844,1847],{},[76,1845,1846],{},"Support Docker Natif"," : Il écoute le socket Docker et se configure automatiquement.",[100,1849,1850,1853],{},[76,1851,1852],{},"Dynamique"," : Pas besoin de redémarrer le proxy lors de l'ajout de nouveaux services.",[100,1855,1856,1859],{},[76,1857,1858],{},"Tableau de Bord"," : Livré avec une belle interface utilisateur intégrée pour voir vos routes en temps réel.",[40,1861,582],{"id":1862},"haproxy",[15,1864,1865],{},"HAProxy est un véritable \"mastodonte\" de la performance. Il est conçu uniquement pour la haute disponibilité et l'équilibrage de charge.",[97,1867,1868,1874,1880],{},[100,1869,1870,1873],{},[76,1871,1872],{},"Performance"," : Débit extrêmement élevé et latence ultra-faible.",[100,1875,1876,1879],{},[76,1877,1878],{},"Fiabilité"," : Une stabilité à toute épreuve utilisée par des géants comme GitHub et Stack Overflow.",[100,1881,1882,1885],{},[76,1883,1884],{},"Focus"," : Il n'essaie pas d'être un serveur web ; c'est un proxy\u002Fload balancer dédié.",[22,1887],{},[35,1889,1891],{"id":1890},"️-algorithmes-de-load-balancing","⚖️ Algorithmes de Load Balancing",[15,1893,1894],{},"L'équilibrage de charge (Load Balancing) est une fonctionnalité de base de tout reverse proxy. Si vous avez plusieurs instances de votre application (ex: VPS Alpha et VPS Bravo), le proxy décide comment répartir le travail.",[40,1896,1898],{"id":1897},"_1-round-robin","1. Round Robin",[15,1900,1901],{},"La méthode la plus simple. Les requêtes sont envoyées à chaque serveur à tour de rôle.",[97,1903,1904,1910],{},[100,1905,1906,1909],{},[76,1907,1908],{},"Fonctionnement"," : VPS Alpha → VPS Bravo → VPS Alpha → VPS Bravo.",[100,1911,1912,1915],{},[76,1913,1914],{},"Idéal pour"," : Les serveurs avec une capacité identique (80% des cas d'utilisation simples).",[40,1917,1919],{"id":1918},"_2-least-connections","2. Least Connections",[15,1921,1922],{},"Les requêtes sont envoyées au serveur ayant le moins de connexions actives.",[97,1924,1925,1930],{},[100,1926,1927,1929],{},[76,1928,1914],{}," : Les requêtes de longue durée (Streaming, API lourdes).",[100,1931,1932,1935],{},[76,1933,1934],{},"Avantage"," : Empêche de surcharger un serveur s'il traite des requêtes lentes.",[40,1937,1939],{"id":1938},"_3-ip-hash-sessions-persistantes","3. IP Hash (Sessions Persistantes)",[15,1941,1942],{},"Les requêtes d'une même adresse IP client sont toujours envoyées au même serveur.",[97,1944,1945],{},[100,1946,1947,1949],{},[76,1948,1914],{}," : Les applications qui stockent les sessions utilisateur localement (états de connexion, paniers d'achat) et n'utilisent pas de stockage partagé comme Redis.",[40,1951,1953],{"id":1952},"_4-least-response-time","4. Least Response Time",[15,1955,1956],{},"Envoie le trafic au serveur qui répond le plus rapidement.",[97,1958,1959],{},[100,1960,1961,1963],{},[76,1962,1914],{}," : Optimiser l'expérience utilisateur en évitant les nœuds plus lents ou qui saturent.",[22,1965],{},[35,1967,1969],{"id":1968},"guide-rapide-dinstallation-configuration","🚀 Guide Rapide d'Installation & Configuration",[15,1971,1972,1973,516],{},"Voici comment configurer les 4 acteurs majeurs avec un exemple de base pour une application ",[76,1974,1975],{},"React\u002FVue (SPA)",[40,1977,1979],{"id":1978},"_1-nginx","1. Nginx",[15,1981,1982],{},"Idéal pour servir des fichiers statiques pré-générés avec de hautes performances.",[15,1984,1985],{},[76,1986,1987],{},"Installation :",[402,1989,1991],{"className":404,"code":1990,"language":406,"meta":230,"style":230},"sudo apt update && sudo apt install nginx -y\n",[408,1992,1993],{"__ignoreMap":230},[411,1994,1995,1997,2000,2003,2006,2009,2011,2014,2017],{"class":413,"line":414},[411,1996,452],{"class":417},[411,1998,1999],{"class":425}," apt",[411,2001,2002],{"class":425}," update",[411,2004,2005],{"class":731}," &&",[411,2007,2008],{"class":417}," sudo",[411,2010,1999],{"class":425},[411,2012,2013],{"class":425}," install",[411,2015,2016],{"class":425}," nginx",[411,2018,2019],{"class":421}," -y\n",[15,2021,2022],{},[76,2023,2024,2025,2028],{},"Configuration de base (",[408,2026,2027],{},"\u002Fetc\u002Fnginx\u002Fsites-available\u002Fmyapp.conf",") :",[402,2030,2033],{"className":2031,"code":2032,"language":1803,"meta":230,"style":230},"language-nginx shiki shiki-themes material-theme-lighter github-light monokai","server {\n    listen 80;\n    server_name myapp.com;\n\n    location \u002F {\n        root \u002Fvar\u002Fwww\u002Fmyapp\u002Fdist; # Chemin vers votre build React\u002FVue\n        index index.html;\n        try_files $uri $uri\u002F \u002Findex.html; # Gestion du routage SPA (très important !)\n    }\n}\n",[408,2034,2035,2040,2045,2050,2054,2059,2064,2069,2074,2079],{"__ignoreMap":230},[411,2036,2037],{"class":413,"line":414},[411,2038,2039],{},"server {\n",[411,2041,2042],{"class":413,"line":231},[411,2043,2044],{},"    listen 80;\n",[411,2046,2047],{"class":413,"line":236},[411,2048,2049],{},"    server_name myapp.com;\n",[411,2051,2052],{"class":413,"line":675},[411,2053,666],{"emptyLinePlaceholder":250},[411,2055,2056],{"class":413,"line":766},[411,2057,2058],{},"    location \u002F {\n",[411,2060,2061],{"class":413,"line":774},[411,2062,2063],{},"        root \u002Fvar\u002Fwww\u002Fmyapp\u002Fdist; # Chemin vers votre build React\u002FVue\n",[411,2065,2066],{"class":413,"line":782},[411,2067,2068],{},"        index index.html;\n",[411,2070,2071],{"class":413,"line":793},[411,2072,2073],{},"        try_files $uri $uri\u002F \u002Findex.html; # Gestion du routage SPA (très important !)\n",[411,2075,2076],{"class":413,"line":804},[411,2077,2078],{},"    }\n",[411,2080,2081],{"class":413,"line":812},[411,2082,2083],{},"}\n",[40,2085,2087],{"id":2086},"_2-caddy","2. Caddy",[15,2089,2090],{},"Le meilleur pour une gestion du SSL sans prise de tête.",[15,2092,2093],{},[76,2094,1987],{},[402,2096,2098],{"className":404,"code":2097,"language":406,"meta":230,"style":230},"sudo apt install -y caddy\n",[408,2099,2100],{"__ignoreMap":230},[411,2101,2102,2104,2106,2108,2111],{"class":413,"line":414},[411,2103,452],{"class":417},[411,2105,1999],{"class":425},[411,2107,2013],{"class":425},[411,2109,2110],{"class":421}," -y",[411,2112,2113],{"class":425}," caddy\n",[15,2115,2116],{},[76,2117,2024,2118,2028],{},[408,2119,1794],{},[402,2121,2124],{"className":2122,"code":2123,"language":1771,"meta":230,"style":230},"language-caddy shiki shiki-themes material-theme-lighter github-light monokai","myapp.com {\n    root * \u002Fvar\u002Fwww\u002Fmyapp\u002Fdist\n    file_server\n    try_files {path} \u002Findex.html # Routage SPA\n}\n",[408,2125,2126,2131,2136,2141,2146],{"__ignoreMap":230},[411,2127,2128],{"class":413,"line":414},[411,2129,2130],{},"myapp.com {\n",[411,2132,2133],{"class":413,"line":231},[411,2134,2135],{},"    root * \u002Fvar\u002Fwww\u002Fmyapp\u002Fdist\n",[411,2137,2138],{"class":413,"line":236},[411,2139,2140],{},"    file_server\n",[411,2142,2143],{"class":413,"line":675},[411,2144,2145],{},"    try_files {path} \u002Findex.html # Routage SPA\n",[411,2147,2148],{"class":413,"line":766},[411,2149,2083],{},[40,2151,2153],{"id":2152},"_3-traefik-docker","3. Traefik (Docker)",[15,2155,2156],{},"Le standard pour les environnements conteneurisés.",[15,2158,2159],{},[76,2160,2161,2164],{},[408,2162,2163],{},"docker-compose.yml"," pour votre application React :",[402,2166,2168],{"className":718,"code":2167,"language":720,"meta":230,"style":230},"services:\n  traefik:\n    image: traefik:v3.0\n    command: [\"--api.insecure=true\", \"--providers.docker=true\", \"--entrypoints.web.address=:80\"]\n    ports: [\"80:80\", \"8080:8080\"]\n    volumes: [\"\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\"]\n\n  my-app:\n    image: my-react-app:latest\n    labels:\n      - \"traefik.http.routers.myapp.rule=Host(`myapp.com`)\"\n      - \"traefik.http.services.myapp.loadbalancer.server.port=80\"\n",[408,2169,2170,2177,2184,2194,2233,2260,2278,2282,2289,2298,2305,2316],{"__ignoreMap":230},[411,2171,2172,2175],{"class":413,"line":414},[411,2173,2174],{"class":727},"services",[411,2176,753],{"class":731},[411,2178,2179,2182],{"class":413,"line":231},[411,2180,2181],{"class":727},"  traefik",[411,2183,753],{"class":731},[411,2185,2186,2189,2191],{"class":413,"line":236},[411,2187,2188],{"class":727},"    image",[411,2190,732],{"class":731},[411,2192,2193],{"class":425}," traefik:v3.0\n",[411,2195,2196,2199,2201,2204,2206,2209,2211,2214,2216,2219,2221,2223,2225,2228,2230],{"class":413,"line":675},[411,2197,2198],{"class":727},"    command",[411,2200,732],{"class":731},[411,2202,2203],{"class":731}," [",[411,2205,1383],{"class":997},[411,2207,2208],{"class":425},"--api.insecure=true",[411,2210,1383],{"class":997},[411,2212,2213],{"class":731},",",[411,2215,1121],{"class":997},[411,2217,2218],{"class":425},"--providers.docker=true",[411,2220,1383],{"class":997},[411,2222,2213],{"class":731},[411,2224,1121],{"class":997},[411,2226,2227],{"class":425},"--entrypoints.web.address=:80",[411,2229,1383],{"class":997},[411,2231,2232],{"class":731},"]\n",[411,2234,2235,2238,2240,2242,2244,2247,2249,2251,2253,2256,2258],{"class":413,"line":766},[411,2236,2237],{"class":727},"    ports",[411,2239,732],{"class":731},[411,2241,2203],{"class":731},[411,2243,1383],{"class":997},[411,2245,2246],{"class":425},"80:80",[411,2248,1383],{"class":997},[411,2250,2213],{"class":731},[411,2252,1121],{"class":997},[411,2254,2255],{"class":425},"8080:8080",[411,2257,1383],{"class":997},[411,2259,2232],{"class":731},[411,2261,2262,2265,2267,2269,2271,2274,2276],{"class":413,"line":774},[411,2263,2264],{"class":727},"    volumes",[411,2266,732],{"class":731},[411,2268,2203],{"class":731},[411,2270,1383],{"class":997},[411,2272,2273],{"class":425},"\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro",[411,2275,1383],{"class":997},[411,2277,2232],{"class":731},[411,2279,2280],{"class":413,"line":782},[411,2281,666],{"emptyLinePlaceholder":250},[411,2283,2284,2287],{"class":413,"line":793},[411,2285,2286],{"class":727},"  my-app",[411,2288,753],{"class":731},[411,2290,2291,2293,2295],{"class":413,"line":804},[411,2292,2188],{"class":727},[411,2294,732],{"class":731},[411,2296,2297],{"class":425}," my-react-app:latest\n",[411,2299,2300,2303],{"class":413,"line":812},[411,2301,2302],{"class":727},"    labels",[411,2304,753],{"class":731},[411,2306,2307,2309,2311,2314],{"class":413,"line":822},[411,2308,833],{"class":731},[411,2310,1121],{"class":997},[411,2312,2313],{"class":425},"traefik.http.routers.myapp.rule=Host(`myapp.com`)",[411,2315,1127],{"class":997},[411,2317,2318,2320,2322,2325],{"class":413,"line":830},[411,2319,833],{"class":731},[411,2321,1121],{"class":997},[411,2323,2324],{"class":425},"traefik.http.services.myapp.loadbalancer.server.port=80",[411,2326,1127],{"class":997},[40,2328,2330],{"id":2329},"_4-haproxy","4. HAProxy",[15,2332,2333],{},"Pure performance et équilibrage de charge dédié.",[15,2335,2336],{},[76,2337,2338,2339,2028],{},"Configuration Frontend\u002FBackend (",[408,2340,2341],{},"\u002Fetc\u002Fhaproxy\u002Fhaproxy.cfg",[402,2343,2346],{"className":2344,"code":2345,"language":1862,"meta":230,"style":230},"language-haproxy shiki shiki-themes material-theme-lighter github-light monokai","frontend main_gateway\n    bind *:80\n    acl is_myapp hdr(host) -i myapp.com\n    use_backend react_cluster if is_myapp\n\nbackend react_cluster\n    balance roundrobin\n    server node1 192.168.1.10:80 check\n    server node2 192.168.1.11:80 check\n",[408,2347,2348,2353,2358,2363,2368,2372,2377,2382,2387],{"__ignoreMap":230},[411,2349,2350],{"class":413,"line":414},[411,2351,2352],{},"frontend main_gateway\n",[411,2354,2355],{"class":413,"line":231},[411,2356,2357],{},"    bind *:80\n",[411,2359,2360],{"class":413,"line":236},[411,2361,2362],{},"    acl is_myapp hdr(host) -i myapp.com\n",[411,2364,2365],{"class":413,"line":675},[411,2366,2367],{},"    use_backend react_cluster if is_myapp\n",[411,2369,2370],{"class":413,"line":766},[411,2371,666],{"emptyLinePlaceholder":250},[411,2373,2374],{"class":413,"line":774},[411,2375,2376],{},"backend react_cluster\n",[411,2378,2379],{"class":413,"line":782},[411,2380,2381],{},"    balance roundrobin\n",[411,2383,2384],{"class":413,"line":793},[411,2385,2386],{},"    server node1 192.168.1.10:80 check\n",[411,2388,2389],{"class":413,"line":804},[411,2390,2391],{},"    server node2 192.168.1.11:80 check\n",[22,2393],{},[35,2395,2397],{"id":2396},"conclusion","🧠 Conclusion",[15,2399,2400],{},"Le choix du bon reverse proxy dépend de votre architecture, de votre trafic et du temps que vous souhaitez consacrer à la configuration.",[97,2402,2403,2412,2420,2428],{},[100,2404,2405,2406,2409,2410,516],{},"Vous voulez de l'",[76,2407,2408],{},"automatique"," ? Optez pour ",[76,2411,515],{},[100,2413,2414,2415,2409,2418,516],{},"Vous voulez de la ",[76,2416,2417],{},"simplicité",[76,2419,1725],{},[100,2421,2422,2423,2409,2426,516],{},"Vous voulez le ",[76,2424,2425],{},"standard de l'industrie",[76,2427,1721],{},[100,2429,2414,2430,2409,2433,516],{},[76,2431,2432],{},"performance brute",[76,2434,582],{},[1444,2436,2437],{},"html pre.shiki code .ssU3Q, html code.shiki .ssU3Q{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#A6E22E}html pre.shiki code .sqNgn, html code.shiki .sqNgn{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#E6DB74}html pre.shiki code .sWZ6u, html code.shiki .sWZ6u{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#F8F8F2}html pre.shiki code .sZ_HY, html code.shiki .sZ_HY{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#AE81FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s5svD, html code.shiki .s5svD{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#F92672}html pre.shiki code .ssona, html code.shiki .ssona{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#E6DB74}",{"title":230,"searchDepth":231,"depth":231,"links":2439},[2440,2441,2445,2451,2457,2463],{"id":1644,"depth":231,"text":1645},{"id":1691,"depth":231,"text":1692,"children":2442},[2443,2444],{"id":1698,"depth":236,"text":1699},{"id":1740,"depth":236,"text":1741},{"id":1764,"depth":231,"text":1765,"children":2446},[2447,2448,2449,2450],{"id":1771,"depth":236,"text":1725},{"id":1803,"depth":236,"text":1734},{"id":1836,"depth":236,"text":515},{"id":1862,"depth":236,"text":582},{"id":1890,"depth":231,"text":1891,"children":2452},[2453,2454,2455,2456],{"id":1897,"depth":236,"text":1898},{"id":1918,"depth":236,"text":1919},{"id":1938,"depth":236,"text":1939},{"id":1952,"depth":236,"text":1953},{"id":1968,"depth":231,"text":1969,"children":2458},[2459,2460,2461,2462],{"id":1978,"depth":236,"text":1979},{"id":2086,"depth":236,"text":2087},{"id":2152,"depth":236,"text":2153},{"id":2329,"depth":236,"text":2330},{"id":2396,"depth":231,"text":2397},"2026-04-04","Un reverse proxy est un serveur qui se place devant votre application et transmet les requêtes des clients au serveur backend approprié. Apprenez à choisir et à configurer le bon reverse proxy pour vos besoins.","\u002Farticles\u002Freverse_proxy\u002Fheader.png",{},"\u002Farticles\u002Ffr\u002Freverse_proxy",{"title":1630,"description":2465},"articles\u002Ffr\u002Freverse_proxy",[2472,1803,1771,1836,1862],"reverse_proxy","4o_vH2eaTARkcEHyVFjh4UTz_FnqwHHuBx_DGjTn-Fw",{"id":4,"title":5,"body":2475,"date":245,"description":246,"extension":247,"image":248,"meta":2626,"navigation":250,"path":251,"seo":2627,"stem":253,"tags":2628,"type":260,"updatedAt":261,"__hash__":262},{"type":7,"value":2476,"toc":2613},[2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2517,2519,2521,2525,2535,2537,2539,2541,2543,2545,2549,2551,2569,2571,2573,2575,2577,2591,2593,2595,2597,2611],[10,2478,13],{"id":12},[15,2480,17],{},[15,2482,20],{},[22,2484],{},[10,2486,27],{"id":26},[15,2488,30],{},[15,2490,33],{},[35,2492,38],{"id":37},[40,2494,43],{"id":42},[15,2496,46],{},[40,2498,50],{"id":49},[15,2500,53],{},[40,2502,57],{"id":56},[15,2504,60],{},[40,2506,64],{"id":63},[15,2508,67],{},[35,2510,71],{"id":70},[15,2512,74,2513,79,2515,83],{},[76,2514,78],{},[76,2516,82],{},[35,2518,87],{"id":86},[15,2520,90],{},[15,2522,2523],{},[76,2524,95],{},[97,2526,2527,2531],{},[100,2528,2529,105],{},[76,2530,104],{},[100,2532,2533,111],{},[76,2534,110],{},[22,2536],{},[10,2538,117],{"id":116},[15,2540,120],{},[35,2542,124],{"id":123},[15,2544,127],{},[15,2546,2547,133],{},[76,2548,132],{},[35,2550,137],{"id":136},[97,2552,2553,2557,2561,2565],{},[100,2554,2555,145],{},[76,2556,144],{},[100,2558,2559,151],{},[76,2560,150],{},[100,2562,2563,157],{},[76,2564,156],{},[100,2566,2567,163],{},[76,2568,162],{},[22,2570],{},[10,2572,169],{"id":168},[15,2574,172],{},[35,2576,176],{"id":175},[97,2578,2579,2583,2587],{},[100,2580,2581,184],{},[76,2582,183],{},[100,2584,2585,190],{},[76,2586,189],{},[100,2588,2589,196],{},[76,2590,195],{},[15,2592,199],{},[22,2594],{},[10,2596,205],{"id":204},[97,2598,2599,2603,2607],{},[100,2600,2601,213],{},[76,2602,212],{},[100,2604,2605,219],{},[76,2606,218],{},[100,2608,2609,225],{},[76,2610,224],{},[15,2612,228],{},{"title":230,"searchDepth":231,"depth":231,"links":2614},[2615,2621,2622,2623,2624,2625],{"id":37,"depth":231,"text":38,"children":2616},[2617,2618,2619,2620],{"id":42,"depth":236,"text":43},{"id":49,"depth":236,"text":50},{"id":56,"depth":236,"text":57},{"id":63,"depth":236,"text":64},{"id":70,"depth":231,"text":71},{"id":86,"depth":231,"text":87},{"id":123,"depth":231,"text":124},{"id":136,"depth":231,"text":137},{"id":175,"depth":231,"text":176},{},{"title":5,"description":246},[255,256,257,258,259],1777912142020]