playground do nginx
(jvns.ca)- Um playground para testar livremente alterações na configuração do nginx
→ insira a config e os comandos curl/http, depois clique em Run para executar
→ mostra o resultado dos comandos executados e os logs de erro do nginx
-
Frontend em Vue.js + backend em Go (apenas o código do servidor foi publicado como Gist)
-
Ao clicar no botão de execução, o backend em Go faz o seguinte
→ salva o arquivo de configuração em um arquivo temporário
→ cria um novo namespace de rede
ip netns add $RANDOM_NAMESPACE_NAME
→ executa o go-httpbin na porta 777
→ inicia o nginx
→ espera 100 ms até o nginx iniciar corretamente; se falhar, retorna o log de erro do nginx
→ executa o comando inserido pelo usuário (verificando se é curl ou http)
→ retorna a saída da requisição
-
Todas as requisições são processadas por um único servidor compartilhado
-
Abordagem de segurança: um pouco de isolamento, um pouco de YOLO
→ o frontend é hospedado em uma CDN
→ não usa banco de dados; só usa o armazenamento local do navegador
→ cada nginx fica em seu próprio namespace de rede, bloqueando o acesso à internet
→ usa o plano gratuito da fly.io
→ colocou isso no FAQ para incentivar as pessoas a se comportarem de forma legal
- Desempenho
→ instância bem pequena (1 CPU compartilhada, 256 MB de RAM)
→ como o frontend está na CDN, o backend só roda quando realmente é usado
→ cada requisição leva cerca de 400 ms. Nada mal
→ a versão Go do httpbin é mais leve que a versão original em Python
→ o desempenho do frontend não é lá essas coisas
Ainda não há comentários.