Qu'est-ce qu'un serveur web?
Un serveur Web est un logiciel et un matériel qui utilise HTTP (Hypertext Transfer Protocol) ou HTTPS et d'autres protocoles pour répondre aux demandes des clients faites sur le World Wide Web. La tâche principale d'un serveur Web est d'afficher le contenu du site Web par le stockage, le traitement et la livraison de pages Web aux utilisateurs. En plus de HTTP ou HTTPS, les serveurs web prennent également en charge d'autres protocoles qui peuvent être appelés "services web" accessibles avec différents ports; les protocoles peuvent également être différents du standard http comme FTP ou SSH ou autre.
Le matériel du serveur Web est connecté à Internet et permet d'échanger des données avec d'autres appareils connectés, tandis que le logiciel du serveur Web contrôle comment un utilisateur accède aux fichiers hébergés. Le processus serveur web est un exemple du modèle client/serveur. Tous les ordinateurs qui hébergent les sites Web doivent avoir un logiciel de serveur Web.
Les serveurs Web sont utilisés dans l'hébergement de sites Web, ou l'hébergement de données pour les sites Web et les applications Web — ou applications Web.

Pourquoi utiliser Cloudflare et quel est le logiciel Cloudflare?
Cloudflare est une entreprise américaine qui fournit des services comme un DNS, un réseau de livraison de contenu (CDN) et de nombreux autres services supplémentaires pour rendre les sites Web plus rapides et plus sécurisés. Afin de comprendre comment Cloudflare fonctionne, il est nécessaire de regarder les erreurs fréquemment commises par les sites Web dans le passé. Lors de la visite d'un site sans Cloudflare, le visiteur du site demande du contenu depuis un serveur. Cependant, lorsqu'il y avait trop de visiteurs sur le serveur en même temps, le serveur a été surchargé avec les conséquences d'un site lent ou non. Comme le propriétaire du site Web, ce n'est pas quelque chose que vous voudriez voir. C'est pourquoi Cloudflare a inventé une solution pour cela. Cloudflare a placé son propre serveur, sous la forme d'un énorme réseau mondial, entre le site et le serveur web. Les visiteurs du site ne communiquent plus directement avec le serveur, mais avec le réseau Cloudflare qui a déjà stocké le contenu du site et le charge via un serveur en fonction de l'emplacement du visiteur. Par exemple: Vous avez un site web qui est hébergé en Allemagne, et quelqu'un des États-Unis essaie de se connecter à votre site Web. La demande doit couvrir une grande distance (entre le site et le serveur web). Cloudflare résout cela en offrant un énorme réseau de serveurs à travers le monde. L'Américain n'a plus à se connecter au serveur allemand, mais il se connectera au serveur Cloudflare le plus proche, quelque part aux États-Unis. Cloudflare Tunnels (ou logiciel cloudflared) est un peu comme une connexion VPN en ce sens qu'il est un moyen sécurisé d'accéder aux ressources sur votre réseau privé interne du monde extérieur. La différence avec les tunnels Cloudflare vs. votre VPN traditionnel est que vous n'avez pas à ouvrir des ports dans votre pare-feu. Avec VPN, vous vous connectez à votre serveur VPN (ou parfois directement à votre routeur) par un trou que vous avez posé dans votre pare-feu. Avec les tunnels Cloudflare, vous installez un client à l'intérieur de votre réseau qui maintient une connexion sécurisée à Cloudflare. Vous créez ensuite différents FQDN (Fully Qualified Domain Names aka. DNS nomme aka. CNAME records) qui associent avec vos services internes.
Comment utiliser Cloudflared pour héberger une application ou un serveur web entier
Avec Cloudflare, vous pouvez utiliser un petit logiciel appelé "Cloudflared" qui crée un tunnel de votre matériel à l'origine cloudflare et relie ce tunnel à votre port 80 ou 443 de votre logiciel de serveur web ; de cette façon, vous pouvez également ne pas ouvrir ces ports à Internet et laisser le pare-feu les bloquer. Cela augmente également la sécurité et vous permet de ne pas exposer votre adresse IP à l'extérieur. Pour faire ce type de connexion, vous avez besoin d'un compte Cloudflare et d'un domaine de haut niveau acheté ou connecté à votre compte. À ce point pour ouvrir votre premier tunnel, vous aurez besoin d'accéder à la console "Zero Trust" via le tableau de bord Cloudflare.
L'application cloudflared que vous pouvez télécharger pour chaque système d'exploitation ici: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
Démarrez votre tunnel sécurisé
Une fois le cloudflared téléchargé, vous pouvez créer le premier tunnel simplement via terminal ou par webui.
TERMINAL
Tapez cette commande pour authentifier :
$ connexion à un tunnel nuageux
Créer un tunnel et lui donner un nom:
$ tunnel nuageux créer
A partir de la sortie de la commande, prenez note du tunnel UUID et du chemin vers votre tunnel.
Confirmer que le tunnel a été créé avec succès en exécutant:
$ liste des tunnels en nuage
Lire les documents officiels pour créer un tunnel via terminal:https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/
WEBUI
- Connectez-vous àZéro confianceet aller àAccès>Tunnels.
- SélectionnerCréer un tunnel.
- Entrez un nom pour votre tunnel. Nous vous suggérons de choisir un nom qui reflète le type de ressources que vous souhaitez connecter à travers ce tunnel (par exemple,
enterprise-VPC-01
). - SélectionnerEnregistrer le tunnel.
- Ensuite, vous devrez installer
cloudflared
et dirige-le. Pour ce faire, vérifiez que l'environnement sousChoisir un environnementreflète le système d'exploitation sur votre machine, puis copie la commande dans la boîte ci-dessous et le coller dans une fenêtre de terminal. Exécutez le commandement. - Une fois la commande terminée, votre connecteur apparaîtra dans Zero Trust.
- SélectionnerSuivant.
Lisez les documents officiels pour créer un tunnel via webui:https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/remote/
Configuration d'une connexion HTTP ou HTTPS à votre serveur web
Une fois le tunnel créé, il est facile d'associer un nom d'hôte au tunnel à travers le tableau de bord de la confiance zéro, dans l'onglet « réseaux » vous pouvez déjà trouver votre tunnel enregistré avec le statut « santé ». Maintenant, cliquez sur le nom du tunnel et cliquez sur le bouton "edit" dans l'onglet "Nom d'hôte public" cliquez sur le bouton "Ajouter un nom d'hôte public" ; entrez un sous-domaine pour créer (si vous voulez configurer un sous-domaine) et sélectionnez un de vos domaines primaires, dans le champ "Type" vous pouvez sélectionner HTTP ou HTTPS (la différence entre les deux est dans le port utilisé et le protocole de communication, nous vous recommandons d'utiliser https si le serveur est déjà configuré avec un certificat) ; si vous sélectionnez "http" dans le champ "Url" vous devrez entrer localhost:80 (ou le port de votre serveur web ou votre application) plutôt si vous sélectionnez "https" dans le champ "Url" vous devrez entrer localhost:443 et ensuite développer les paramètres d'applications supplémentaires" puis "TLS" et sélectionnez l'élément "No TLS Verify" ceci si votre certificat utilisé dans le serveur web est auto-généré et donc auto-signé (ce qui est important). Pour héberger un serveur web entier, si votre serveur web est déjà configuré avec des domaines déjà présents dans Cloudflare, vous n'avez pas besoin de faire autre chose. Pour héberger une application signle, vous pouvez également utiliser des ports personnalisés par exemple 5000 ou 8080 selon le port que l'application réside sur votre serveur.
De cette façon, votre application est maintenant accessible via Internet via le domaine que vous avez sélectionné plus tôt.
Recommandations de configuration
Lorsque cloudflared reçoit une demande d'un appareil WARP, il utilise les ports de la machine hôte pour évaluer et transmettre la demande à votre service d'origine. Chaque machine par conception de système est limitée à un maximum de 65 535 ports. En outre, chaque service sur la machine a un nombre limité de ports qu'il peut consommer. Pour cette raison, nous recommandons le modèle de déploiement suivant:
- le nuage devrait être déployé sur une machine d'accueil dédiée. Ce modèle est généralement approprié, mais il peut y avoir des flux de travail sans serveur ou groupés où un hôte dédié n'est pas possible.
- La machine hôte devrait allouer 50 000 ports pour être disponible pour l'utilisation par le service nuageux. Les ports restants sont réservés aux processus administratifs du système.
Pour augmenter le nombre de ports disponibles sur cloudflared sous Linux :
Si votre machine a un répertoire /etc/sysctl.d/:
Terminal window
echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.d/99-cloudflared.conf
sudo sysctl -p /etc/sysctl.d/99-cloudflared.conf
Sinon:
Terminal window
echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
Sur Linux et macOS, les paramètres ulimit déterminent les ressources du système disponibles pour un utilisateur connecté. Nous vous recommandons de configurer les ulimits suivantes sur le serveur cloudflared: ≥ 70 000
Pour afficher vos ulimites actuelles, ouvrez un terminal et lancez :
Terminal window
ulimit -a
Pour définir les fichiers ouverts ulimit :
Terminal window
ulimit -n 70000
Documents de configuration de : https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/deploy-tunnels/systèmes-exigences/
Documents généraux de configuration pour le déploiement d'un tunnel: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/deploy-tunnels/
Pourquoi le nuage est-il recommandé?
Le logiciel a diverses utilisations ; nous pouvons en énumérer certains, imaginons par exemple être dans une région du monde où il n'y a pas de câble Internet et pour avoir un serveur web vous devrez payer pour des connexions satellite très chères ou 4g lte... Beaucoup de ces connexions n'ont pas d'IP public parce qu'elles sont captées ou protégées; avec cloudflared il est possible de contourner ces limites et toujours transmettre sur le web sans exposer votre adresse IP au public. Dans la particularité d'avoir une connexion mobile de 4g ou 5g et de pouvoir le faire n'importe où (même si la connexion par câble est disponible), nous recommandons toujours d'utiliser ces connexions comme une connexion "backup" et non comme une connexion principale ; la raison est que si les fournisseurs voient du trafic inhabituel sur le réseau mobile, ils pourraient également le limiter. L'utilisation de cloudflared n'est cependant pas limitée à cela; imaginez par exemple avoir à créer un réseau de serveurs avec différentes fonctions, vous pourriez par exemple utiliser un serveur web avec une ligne dédiée et un (ou plus) serveur de streaming à domicile connecté via cloudflared peut-être aussi pour une connexion aux bases de données. Vous pouvez également avoir besoin d'avoir certains utilisateurs accéder à votre application que vous utilisez normalement à une adresse comme http://localhost:8080 avec cloudflared vous pouvez le faire en entrant simplement ce port dans le champ "Hostel". Il est également possible de connecter plusieurs serveurs à un seul domaine par l'intermédiaire de sous-domaines ou de configurer la protection de l'accès pour protéger l'accès avec l'authentification à deux facteurs ou l'authentification de la posture de l'utilisateur (dispositif utilisé, ip, et plus). Bref, les usages peuvent être différents. Attention cependant à l'utiliser correctement car Cloudflare effectue des contrôles périodiques et peut désactiver l'utilisation des comptes à tout moment.
Lisez toujours les documents officiels
Comme j'ai écrit il y a un moment, je vous conseille de toujours lire et apprendre de l'officielnuageuxles documents parce que ces logiciels pourraient aussi avoir des changements au fil du temps. Ce document est rédigé sans avoir reçu l'appui officiel denuageuxet est conçu comme un exemple pour ceux qui travaillent dans notre organisation.