playground nginx
(jvns.ca)- Playground untuk menguji dengan bebas dengan mengubah konfigurasi nginx sesuka hati
→ masukkan config dan perintah curl/http, lalu tekan Run untuk menjalankannya
→ menampilkan hasil dari perintah yang dijalankan dan log error nginx
-
Frontend Vue.js + backend Go (hanya kode server yang dipublikasikan melalui Gist)
-
Saat tombol Run ditekan, backend Go melakukan hal-hal berikut
→ menyimpan file konfigurasi sebagai file temp
→ membuat network namespace baru
ip netns add $RANDOM_NAMESPACE_NAME
→ menjalankan go-httpbin pada port 777
→ memulai nginx
→ menunggu 100ms sampai nginx berhasil berjalan. Jika gagal, mengembalikan log error nginx
→ menjalankan perintah yang dimasukkan pengguna (memeriksa apakah berupa curl / http)
→ mengembalikan output dari permintaan
-
Semua permintaan diproses oleh satu server bersama
-
Pendekatan keamanan: sedikit isolation, sedikit YOLO
→ frontend di-host dari CDN
→ tidak menggunakan DB, hanya memakai local storage browser
→ semua nginx ditempatkan dalam network namespace masing-masing. Akses internet diblokir
→ menggunakan free tier fly.io
→ memasukkannya ke FAQ agar orang-orang bertindak dengan baik
- Performa
→ instance yang sangat kecil (1 shared CPU, RAM 256MB)
→ karena frontend ada di CDN, backend hanya aktif saat benar-benar digunakan
→ satu permintaan memerlukan sekitar 400ms. Tidak buruk
→ versi Go dari httpbin lebih ringan daripada versi Python aslinya
→ performa frontend tidak terlalu bagus
Belum ada komentar.