O que é o Nginx?
O Nginx inicialmente foi construído para ser usado como servidor web, em resposta a um problema chamado C10K, esse problema era gerenciar 10 mil conexões simultâneas. Todavia, dado o desempenho ao longo do tempo, a ferramenta foi aumentando as funcionalidades, atuando hoje como: webserver, load balancer, proxy reverso, media streaming, além de proxy para serviços de e-mail.
Como ele funciona?
Hoje o Nginx é um dos servidores mais seguros e escaláveis por usar conexão orientada a eventos e assíncrona. E o que isso significa?
Ele usa o funcionamento de single thread para as requisições recebidas, explicarei logo abaixo, de maneira que pouca memória é necessária.
Ok, mas o que é a single thread?
Analise a imagem abaixo, o nginx possui uma fila de processos, chamada Thread Master, essa por sua vez gerencia os workers, que são os responsáveis por de fato executar a tarefas, onde cada um é alocado em núcleos de processamentos da máquina.
Agora que entendemos as divisões de tarefas dos núcleos, precisamos entender o porquê do nginx ser assíncrono e orientado a eventos.
Veja bem, imagine um servidor que recebe 100 requisições por segundo, onde o tempo de resposta varie e não sabemos ao certo quando o processamento irá ser finalizado. Nesse cenário, não podemos travar o servidor, impedindo que ele receba novas requisições, logo, enquanto uma tarefa X aguarda resposta, outras são resolvidas simultaneamente. Note que aqui encontramos mais uma característica do server, ele não faz com que uma tarefa seja bloqueada em detrimento de outra, há uma reorientação de recursos enquanto aguarda resposta, isso é possível porque é criado um canal de escuta que avisará quando tudo estiver concluído, sendo assim, orientado a eventos.
Você pode ler um pouco mais sobre isso aqui.
Top comments (0)