From version 2.5 of Traefik, you are now able to use HTTP/3 (QUIC). Keep in mind that this protocol is not production-ready and can lead to some instabilities.

Version Date Commentaires
1 05/2022 Post creation

Goal : Give the capability for Traefik to receive/send HTTP/3 requests

Environment : Debian 11.7, Docker 23.x, docker compose (plugin) 2.17.x, Traefik 2.x

Execution context :

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

Principe and requirements

HTTP/3 is a new web standard to increase the navigation speed. Without going into details, it is a transport protocol to send HTTP requests faster than HTTP/2 (TCP), particularly with the use of UDP.

http3 quic diagram
HTTP/3 QUIC - picture from Cloudflare blog

More information here :

Traefik configuration

Before you start configuring HTTP/3, be aware that it is not possible to let Traefik listen to the same UDP port and TCP port. In addition, the entry point used for HTTP/3 needs to be the same they use with the routers which have a TLS configuration.

Configuration is simple: add the bloc "experimental" and modify the entry point which have the HTTPS bloc:

experimental:
  http3: true

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

You have to restart Traefik to commit changes. With this configuration, every router with the entry point "websecure" (in this example) will be reachable in HTTP/2 and HTTP/3.

Validate your access with this tool from Geekflare :

Check if HTTP/3 is enabled - Geekflare Tools
Find out if your site supports the latest H3 protocol for better performance. Geekflare H3 tool use cURL for the testing

Source

Partager l'article