10 Punkte von xguru 2021-09-27 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Ein Playground, in dem sich nginx-Konfigurationen frei ändern und testen lassen

config- sowie curl/http-Befehle eingeben und auf Run klicken, um sie auszuführen

→ Zeigt das Ergebnis der ausgeführten Befehle sowie die nginx-Error-Logs an

  • Vue.js-Frontend + Go-Backend (offengelegt ist nur der Servercode als Gist)

  • Beim Klick auf den Run-Button führt das Go-Backend folgende Schritte aus

→ Speichert die Konfigurationsdatei als temporäre Datei

→ Erstellt einen neuen Network Namespace

ip netns add $RANDOM_NAMESPACE_NAME

→ Startet go-httpbin auf Port 777

→ Startet nginx

→ Wartet 100 ms, bis nginx korrekt läuft. Falls das fehlschlägt, werden die nginx-Error-Logs zurückgegeben

→ Führt den vom Nutzer eingegebenen Befehl aus (prüft, ob es sich um curl oder http handelt)

→ Gibt die Ausgabe der Anfrage zurück

  • Alle Anfragen werden von einem einzelnen gemeinsam genutzten Server verarbeitet

  • Sicherheitsansatz: ein wenig Isolation, ein wenig YOLO

→ Das Frontend wird über ein CDN gehostet

→ Keine DB-Nutzung, nur Browser Local Storage

→ Jede nginx-Instanz kommt in ihren eigenen Network Namespace. Internetzugriff wird blockiert

→ Nutzung des Free Tier von fly.io

→ In der FAQ darum bitten, sich anderen gegenüber freundlich zu verhalten

  • Performance

→ Sehr kleine Instanz (1 shared CPU, 256 MB RAM)

→ Da das Frontend im CDN liegt, läuft das Backend nur bei tatsächlicher Nutzung

→ Eine Anfrage dauert etwa 400 ms. Gar nicht schlecht

→ Die Go-Version von httpbin ist leichter als die ursprüngliche Python-Version

→ Die Frontend-Performance ist nicht besonders gut

Noch keine Kommentare.

Noch keine Kommentare.