Déploiement
Déploiement • Chapitre 1 : Introduction au déploiement

Fonctionnement d'un hébergement web

Un hébergement web est une infrastructure informatique connectée en permanence à Internet dotée d'une adresse IP publique. Son rôle consiste à écouter sur les ports réseau standards (80 pour HTTP, 443 pour HTTPS), à intercepter les requêtes des navigateurs mondiaux et à délivrer instantanément des réponses fiables : fichiers statiques ou flux de données dynamiques.

🖥️
Machine Hôte & OS

Serveur physique ou virtuel (VPS Linux) alimenté 24h/24, doté de CPU, RAM, disques SSD et connectivité haut débit garantie.

🌐
IP Publique & Ports

Adresse IP fixe accessible mondialement, écoutant en continu sur le port 443 (HTTPS sécurisé) et le port 80 (HTTP redirection).

⚙️
Serveur Web (Nginx)

Logiciel d'aiguillage ultra-performant servant les fichiers statiques et relayant les requêtes dynamiques vers vos API.

📂
Dossier Racine (Document Root)

Emplacement système isolé (ex: /var/www/mon-site/dist) contenant les fichiers autorisés à être consultés.

Simulateur Interactif : Anatomie d'une Requête sur le Serveur

Cycle de Vie Réseau

Sélectionnez un type de requête émise par un visiteur pour observer le cheminement exact à l'intérieur de l'hébergement web :

🌐
1. Navigateur

Résolution DNS vers 198.51.100.42 (IP du serveur)

⚡
2. Nginx (Port 443)

Nginx lit directement le disque dans /var/www/mon-site/dist/assets/

📦
3. Cible Finale

Aucun backend sollicité (Zéro CPU Node.js consommé)

200 OK (ou 304 Not Modified)4 ms
/etc/nginx/sites-available/mon-site.conf : Configuration Nginx de Production
# ==============================================================================
# CONFIGURATION TYPE NGINX DE PRODUCTION (/etc/nginx/sites-available/mon-site)
# ==============================================================================

# 1. Redirection forcée de tout le trafic HTTP (port 80) vers HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name mon-site.com www.mon-site.com;
    return 301 https://$host$request_uri;
}

# 2. Serveur principal sécurisé HTTPS (port 443)
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mon-site.com www.mon-site.com;

    # Certificats SSL générés par Let's Encrypt Certbot
    ssl_certificate /etc/letsencrypt/live/mon-site.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mon-site.com/privkey.pem;

    # Racine pour les fichiers frontend compilés (dist)
    root /var/www/mon-site/dist;
    index index.html;

    # Règle clé SPA : renvoie index.html si le fichier physique n'existe pas
    location / {
        try_files $uri $uri/ /index.html;
    }

    # Reverse Proxy vers l'API Node.js exécutée sur le port 3000
    location /api/ {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_cache_bypass $http_upgrade;
    }
}

Principes Techniques de l'Hébergement Web

1. La Notion de Port Réseau et de Socket d'Écoute Ports 80 & 443

Un serveur est une machine exécutant des dizaines de programmes en même temps. Les ports réseau permettent de savoir à quel programme s'adresse chaque message entrant :

  • Port 80 : Réservé au protocole HTTP standard (généralement configuré pour rediriger en 301 vers le port 443).
  • Port 443 : Réservé au protocole HTTPS sécurisé chiffré par certificat TLS/SSL.
  • Port 22 : Réservé à l'administration système à distance via SSH.
  • Port 3000 / 8080 : Ports applicatifs internes où tourne votre API Node.js ou Spring Boot, inaccessible au public direct.

2. Le Rôle Fondamental du Reverse Proxy Nginx en Première Ligne

En production, on n'expose JAMAIS directement un serveur Node.js ou Python sur le port 80/443. On place un Reverse Proxy (Nginx, Caddy ou Traefik) devant l'application. Nginx gère la décompression SSL, bloque les requêtes malveillantes, met en cache les fichiers statiques lourds (images, CSS) et redistribue la charge vers le processus Node.js en interne via proxy_pass http://127.0.0.1:3000.

3. Les Types d'Infrastructures d'Hébergement Du VPS au Serverless

Il existe plusieurs niveaux d'abstraction matérielle :

  • Serveur Dédié (Bare-Metal) : Une machine physique entière louée dans un datacenter (haute puissance, coût élevé).
  • VPS (Virtual Private Server) : Une machine virtuelle isolée partageant un serveur physique via un hyperviseur KVM (meilleur rapport qualité/prix).
  • Hébergement Cloud Managé (PaaS) : Vous ne gérez aucun OS, la plateforme gère les serveurs et déploie votre conteneur (Render, Railway).
  • Edge Serverless : Votre code est distribué sous forme de fonctions exécutées au plus près du visiteur (Cloudflare Workers, Vercel Edge).

Tableau Comparatif : Nginx vs Apache vs Caddy

Serveur WebArchitecturePerformance StatiqueGestion HTTPSCas d'Usage Idéal
NginxÉvénementielle non-bloquante (Asynchrone)Ultra-Rapide (Très faible conso RAM)Certbot / Let's Encrypt semi-automatiqueStandard mondial pour Reverse Proxy, SPAs et APIs Node/PHP
ApacheProcessus / Threads par connexionMoyenne (plus lourd en mémoire)Certbot / Let's Encrypt manuelHébergements mutualisés traditionnels, CMS WordPress avec fichiers .htaccess
CaddyÉcrit en Go, moderne et légerExcellente100% Automatique sans configurationPetits projets modernes, certificats HTTPS sans prise de tête