Configuration et utilisation du HTTP/3 avec Traefik

Traefik vous permet d'utiliser le protocole HTTP/3 - découvrez comment grâce à cet article.

Depuis la version 3.0 de Traefik, le protocole HTTP/3 (QUIC ) est stable et disponible sans configuration expérimentale.

Objectif: Permettre à Traefik d’écouter/répondre aux requêtes HTTP/3 (QUIC)

Environnement : Debian 13, Docker 28.x, docker compose (plugin) 2.32.x, Traefik 3.6.

Contexte d’exécution :

bash
jho@vmi866042:/opt/docker/dc$ tree
.
├── conf
│   ├── acme.json
│   ├── traefik.yml
│   ├── traefikdynamic
│   │   ├── dynamic.yml
├── docker-compose.yml
└── logs
    ├── traefikAccess.log
    ├── traefik.log

Résultat de la commande “tree” dans le dossier /opt/docker/dc

  • dossier où se trouvent tous les fichiers et dossiers pour cet exemple : /opt/docker/dc
  • emplacement du fichier de configuration principal de Traefik : /opt/docker/dc/conf/traefik.yml
  • dossier où se trouvent les configurations de Traefik (fichiers dynamiques) : /opt/docker/dc/conf/traefikdynamic
  • emplacement du fichier comportant tous les certificats générés par Let’s Encrypt (ou autre) : /opt/docker/dc/conf/acme.json
  • dossier où se trouvent les journaux d’événements (logs) : /opt/docker/dc/logs/

Principes et prérequis#

HTTP/3 est un nouveau protocole standardisé visant à améliorer la vitesse de navigation sur le web. Sans rentrer dans de nombreux détails, HTTP/3 est un protocole de transport pour distribuer des requêtes HTTP plus rapidement qu’avec HTTP/2 (TCP), notamment en utilisant l’UDP.

HTTP/3 QUIC - image récupérée depuis le blog CloudFlarePour plus d’informations, je vous suggère ces sites :

Configuration de Traefik#

Avant de vous lancer dans la configuration du HTTP/3, notez que depuis Traefik 3, HTTP/3 partage le même port que l’entrypoint HTTPS : Traefik écoute donc à la fois sur le port 443/TCP (HTTPS) et 443/UDP (HTTP/3) via le même entrypoint. L’entrypoint utilisé pour HTTP/3 doit être celui sur lequel vous avez activé la partie TLS pour vos routeurs.

La configuration est assez simple : modifiez l’entrypoint servant le HTTPS pour y activer le HTTP/3 :

yaml
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"
    http3:
      advertisedPort: 443

Vous devez redémarrer Traefik pour valider les changements. Avec cette configuration, tous vos routeurs configurés avec l’entrypoint “websecure” (selon l’exemple) seront accessibles en HTTP/2 et HTTP/3.

Configuration du fichier docker-compose.yml#

Vous devez faire écouter Traefik sur le port 443/UDP pour qu’il puisse écouter/distribuer en HTTP/3. Ainsi, modifiez le service dans le fichier docker-compose comme tel :

bash
---
services:
  traefik:
    image: traefik:v3.6
    container_name: traefik
    restart: unless-stopped
    ports:
      - target : 80
        published : 80
        protocol: tcp
        mode : host
      ### BEGIN dashboad
      - target : 8080
        published : 8080
        protocol: tcp
        mode : host
      ### END dashboard
      - target : 443
        published : 443
        protocol: tcp
        mode : host
      # HTTP/3 QUIC
      - target : 443
        published : 443
        protocol: udp
        mode : host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./conf/traefikdynamic:/dynamic
      - ./conf/traefik.yml:/etc/traefik/traefik.yml:ro
      - ./conf/acme.json:/etc/traefik/acme.json
      - ./logs/traefik.log:/etc/traefik/applog.log
    environment:
      TZ: Europe/Paris

Pour tester, vous pouvez utiliser l’outil disponible chez Domsignal :

HTTP/3 Test | Ensure Your Website’s Speed and CompatibilityFind out if your site supports the latest H3 protocol for better performance. Domsignal H3 tool use cURL for the testingDomsignalLorsque votre configuration fonctionne, vous devez avoir ce résultat :

Source

Restez informé

Abonnez-vous au flux RSS ou suivez pour les nouveaux articles.

Articles similaires

Aucune image
#supervision

Des métriques pour Prometheus avec Traefik

Traefik dispose d'un point d'entrée de supervision, conçu pour Prometheus. Découvrez comment le mettre en place et l'exploiter.

Lire l'article
Aucune image
#traefik

Utiliser le binaire de Traefik sans docker

Cet article décrit l'installation et la configuration de Traefik pour être utilisé en mode binaire, sans docker et sans être un conteneur.

Lire l'article

Derniers dans #traefik