10 points par xguru 2021-09-27 | Aucun commentaire pour le moment. | Partager sur WhatsApp
<p>- Un terrain de jeu permettant de tester librement des configurations nginx <br /> → saisir une config ainsi que des commandes `curl`/`http`, puis cliquer sur Run pour les exécuter<br /> → affiche le résultat de la commande exécutée et le journal d’erreurs de nginx <br /> - Frontend en Vue.js + backend en Go (seul le code serveur est publié via Gist)<br /> - Quand on appuie sur le bouton d’exécution, le backend Go effectue les opérations suivantes <br /> → enregistre le fichier de configuration dans un fichier temporaire<br /> → crée un nouvel espace de noms réseau <br /> `ip netns add $RANDOM_NAMESPACE_NAME`<br /> → lance `go-httpbin` sur le port 777<br /> → démarre nginx<br /> → attend 100 ms jusqu’à ce que nginx démarre correctement ; en cas d’échec, renvoie le journal d’erreurs de nginx<br /> → exécute la commande saisie par l’utilisateur (en vérifiant qu’il s’agit bien de `curl` ou `http`)<br /> → renvoie la sortie de la requête <br /> - Toutes les requêtes sont traitées par un seul serveur mutualisé <br /> <br /> - Approche côté sécurité : un peu d’isolation, un peu de YOLO <br /> → le frontend est hébergé sur un CDN <br /> → pas de base de données ; uniquement le stockage local du navigateur<br /> → chaque nginx est placé dans son propre espace de noms réseau, avec blocage de l’accès à Internet <br /> → utilisation du free tier de fly.io <br /> → ajouter une FAQ pour encourager les gens à se comporter correctement <br /> <br /> - Performances<br /> → très petite instance (1 CPU partagé, 256 Mo de RAM)<br /> → le frontend étant sur un CDN, le backend ne tourne que lors d’une utilisation réelle<br /> → une requête prend environ 400 ms. Pas mal <br /> → la version Go de httpbin est plus légère que la version originale en Python <br /> → les performances du frontend ne sont pas vraiment excellentes </p>

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.