Exécuter son site web avec FreeBSD, HTTP/3 et Caddy 2 dans DigitalOcean …

Image for post
Image for post

our cette expérience, je pars d’une instance FreeBSD 12.1 64 bits dans DigitalOcean :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Ainsi que Node.js :

Image for post
Image for post

avec Serve et PM2 :

Image for post
Image for post

PM2 via le portail de Keymetrics me permet d’avoir un monitoring de base de l’instance :

Image for post
Image for post

Je clone un site web statique très simple avec un seul fichier “index.html” depuis GitHub :

Image for post
Image for post
Image for post
Image for post

Et je peux l’exposer localement via Serve et PM2 :

Image for post
Image for post
Image for post
Image for post
serve.sh

qui apparait sur le port TCP 5000 ici :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Caddy 2 offre la possibilité d’avoir le support expérimental de HTTP/3. Pour rappel, HTTP/3 est le successeur proposé de HTTP/2, qui est déjà utilisé sur le Web, en utilisant UDP au lieu de TCP pour le protocole de transport sous-jacent. Comme HTTP/2, il n’observe pas les versions majeures précédentes du protocole. La prise en charge de HTTP/3 a été ajoutée à Cloudflare et Google Chrome en septembre 2019 et peut être activée dans les versions stables de Chrome et Firefox.

Image for post
Image for post

Je récupère le binaire de Caddy 2 pour freeBSD depuis GitHub :

Image for post
Image for post
Image for post
Image for post

Je démarre Caddy avec ce fichier Caddyfile qui introduit le support expérimental de HTTP/3 :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

via ce simple script shell :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Je peux installer HTTPie :

Image for post
Image for post

afin de lancer une requête vers ce site web et retrouver la partie Header avec alt-svc qui montre la présence du protocole HTTP/3 :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

et je le lance sur mon poste avec le support du protocole HTTP/3 :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

Above the clouds, the sky is always blue ...

Get the Medium app