My boring Blog

Home page di Mauro Frigerio

Attivare HTTP/3 in traefik

28-07-2022 Tempo di lettura 2 minuti Article

Nota

Questa guida è basata su traefik 2, per la nuova versione guardate questo post.

Vuoi rendere il tuo sito accessibile più velocemente? Allora devi provare la nuova versione del protocollo HTTP o meglio della sua versione numero 3 o anche detta HTTP/3. i browser più comuni sopportano già questo protocollo e molti lo sfruttano già senza accorgersi di usarlo.

Secondo un report di Cloudflare il 30% del traffico internet sfrutta già questa possibilità. La novità è il cambio di protocollo per il transport layer da TCP a UDP (differenze e l’integrazione di TLS. Tra UDP e HTTP è stato aggiunto il nuovo protocollo QUIC, ideato in principio da Google. Se vi interessano un po’ di dettagli vi consiglio questo video.

Attivare HTTP/3 in traefik

Prima di tutto serve un istanza di traefik con un dominio e il relativo certificato TLS funzionante. Se non se ancora a questo punto, consulta prima questa guida.

Traefik ha un supporto di HTTP/3 ancora a livello sperimentale a partire dalla versione 2.5. L’attivazione è molto semplice e basta aggiungere le seguenti impostazioni al file docker-compose (un esempio completo è disponibile su GitHub).

traefik:
    image: traefik:v2.8
    container_name: traefik
    command:
      ...
      - "--entrypoints.web-secure.address=:443"
      - "--entrypoints.web-secure.http3"    # <== ADD
      - "--experimental.http3=true"         # <== ADD
      ...
    ports:
      - 80:80
      - 443:443/tcp       # <== CHANGE
      - 443:443/udp       # <== ADD
    ...

Dopo aver salvato il file di docker-composesi deve ricreare il container di traefikcon il comando:

sudo docker-compose up -d traefik

Come testare l’utilizzo di HTTP/3?

In Firefox è possibile aprire il tab analizza (premendo il tasto destro) e poi si deve scegliere il tab Rete. Spesso è necessario visualizzare la colonna Protocollo. Adesso è possibile ricaricare la pagina desiderata e se tutto funziona correttamente nella colonna Protocollo appare: HTTP/3.

Se scopri dei problemi in questa guida o nei file di configurazione puoi aprire una issue su GitHub. Grazie!