playground de nginx
(jvns.ca)- Un playground donde puedes cambiar libremente la configuración de nginx y probarla
→ ingresa la configuración y comandos curl/http, y ejecuta con Run
→ muestra el resultado de los comandos ejecutados y el log de errores de nginx
-
Frontend en Vue.js + backend en Go (solo el código del servidor está publicado como Gist)
-
Al presionar el botón de ejecutar, el backend en Go realiza lo siguiente
→ guarda el archivo de configuración como un archivo temporal
→ crea un nuevo network namespace
ip netns add $RANDOM_NAMESPACE_NAME
→ ejecuta go-httpbin en el puerto 777
→ inicia nginx
→ espera 100 ms hasta que nginx se ejecute correctamente. Si falla, devuelve el log de errores de nginx
→ ejecuta el comando ingresado por el usuario (verificando que sea curl o http)
→ devuelve la salida de la solicitud
-
Maneja todas las solicitudes con un solo servidor compartido
-
Enfoque de seguridad: un poco de aislamiento, un poco de YOLO
→ el frontend está alojado en un CDN
→ no usa DB. Solo usa el almacenamiento local del navegador
→ cada nginx se coloca en su propio network namespace. Se bloquea el acceso a internet
→ usa el plan gratuito de fly.io
→ ponerlo en el FAQ para pedirle a la gente que se porte bien
- Rendimiento
→ instancia muy pequeña (1 CPU compartido, 256 MB de RAM)
→ como el frontend está en un CDN, el backend solo se activa cuando realmente se usa
→ cada solicitud tarda alrededor de 400 ms. No está nada mal
→ la versión en Go de httpbin es más ligera que la versión original en Python
→ el rendimiento del frontend no es tan bueno
Aún no hay comentarios.