10 Punkte von xguru 2021-09-27 | Noch keine Kommentare. | Auf WhatsApp teilen
<p>- Ein Playground, in dem sich nginx-Konfigurationen frei ändern und testen lassen <br /> → `config`- sowie `curl`/`http`-Befehle eingeben und auf Run klicken, um sie auszuführen<br /> → Zeigt das Ergebnis der ausgeführten Befehle sowie die nginx-Error-Logs an <br /> - Vue.js-Frontend + Go-Backend (offengelegt ist nur der Servercode als Gist)<br /> - Beim Klick auf den Run-Button führt das Go-Backend folgende Schritte aus <br /> → Speichert die Konfigurationsdatei als temporäre Datei<br /> → Erstellt einen neuen Network Namespace <br /> ip netns add $RANDOM_NAMESPACE_NAME<br /> → Startet `go-httpbin` auf Port 777<br /> → Startet nginx<br /> → Wartet 100 ms, bis nginx korrekt läuft. Falls das fehlschlägt, werden die nginx-Error-Logs zurückgegeben<br /> → Führt den vom Nutzer eingegebenen Befehl aus (prüft, ob es sich um `curl` oder `http` handelt)<br /> → Gibt die Ausgabe der Anfrage zurück <br /> - Alle Anfragen werden von einem einzelnen gemeinsam genutzten Server verarbeitet <br /> <br /> - Sicherheitsansatz: ein wenig Isolation, ein wenig YOLO <br /> → Das Frontend wird über ein CDN gehostet <br /> → Keine DB-Nutzung, nur Browser Local Storage<br /> → Jede nginx-Instanz kommt in ihren eigenen Network Namespace. Internetzugriff wird blockiert <br /> → Nutzung des Free Tier von fly.io <br /> → In der FAQ darum bitten, sich anderen gegenüber freundlich zu verhalten <br /> <br /> - Performance<br /> → Sehr kleine Instanz (1 shared CPU, 256 MB RAM)<br /> → Da das Frontend im CDN liegt, läuft das Backend nur bei tatsächlicher Nutzung<br /> → Eine Anfrage dauert etwa 400 ms. Gar nicht schlecht <br /> → Die Go-Version von httpbin ist leichter als die ursprüngliche Python-Version <br /> → Die Frontend-Performance ist nicht besonders gut </p>

Noch keine Kommentare.

Noch keine Kommentare.