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