nginx playground
(jvns.ca)<p>- nginx ayarlarını istediğiniz gibi değiştirip test edebileceğiniz bir playground <br />
→ `config` ve `curl/http` komutlarını girip Run'a basarak çalıştırma<br />
→ çalıştırılan komutların sonucunu ve nginx hata loglarını gösterir <br />
- Vue.js frontend + Go backend (sunucu kodunun yalnızca Gist'i açıklandı)<br />
- Run düğmesine basıldığında Go backend şu işleri yapar <br />
→ yapılandırma dosyasını geçici bir dosya olarak kaydeder<br />
→ yeni bir ağ namespace'i oluşturur <br />
`ip netns add $RANDOM_NAMESPACE_NAME`<br />
→ `go-httpbin`'i 777 portunda çalıştırır<br />
→ nginx'i başlatır<br />
→ nginx düzgün çalışana kadar 100ms bekler. Başarısız olursa nginx hata logunu döndürür<br />
→ kullanıcının girdiği komutu çalıştırır (`curl` / `http` olup olmadığını kontrol eder)<br />
→ isteğin çıktısını döndürür <br />
- Tüm istekleri tek bir paylaşımlı sunucu işler <br />
<br />
- Güvenlik yaklaşımı: biraz isolation, biraz YOLO <br />
→ frontend CDN'de barındırılır <br />
→ DB kullanılmaz. Yalnızca tarayıcı local storage kullanılır<br />
→ tüm nginx örnekleri kendi ağ namespace'lerinde tutulur. İnternete erişmeleri engellenir <br />
→ fly.io'nun ücretsiz katmanı kullanılır <br />
→ insanların nazik davranması için FAQ'ya not eklenir <br />
<br />
- Performans<br />
→ çok küçük bir instance (1 shared CPU, 256MB RAM)<br />
→ frontend CDN üzerinde olduğu için backend yalnızca gerçekten kullanıldığında çalışır<br />
→ bir istek yaklaşık 400ms sürer. Fena değil <br />
→ Go sürümü `httpbin`, orijinal Python sürümünden daha hafif <br />
→ frontend performansı çok iyi değil </p>
Henüz yorum yok.