NGINX, pronunciado em inglês como "engine-ex", é um famoso software de servidor web de código aberto. Em sua versão inicial funcionava em servidores web HTTP. No entanto, hoje ele também serve como proxy reverso, balanceador de carga HTTP e proxy de e-mail para IMAP, POP3 e SMTP.
Este software foi lançado oficialmente em outubro de 2004. O criador do software, Igor Sysoev, iniciou seu projeto em 2002 como uma tentativa de resolver o alvo Problema C10k. C10k é o desafio de gerenciar dez mil conexões ao mesmo tempo. Hoje, os servidores web precisam lidar com um número ainda maior de conexões. Por esse motivo, o NGINX oferece uma arquitetura assíncrona e orientada a eventos, um recurso que torna o NGINX um dos servidores mais confiáveis em termos de velocidade e escalabilidade.
Devido à sua excelente capacidade de lidar com muitas conexões e à sua velocidade, muitos sites de alto tráfego usam o serviço NGINX. Alguns desses gigantes da Internet são Google, Netflix, Adobe, Cloudflare, WordPress.com e muitos mais.
Como funciona o NGINX?
Antes de nos aprofundarmos no que é NGINX, vamos revisar como funciona um servidor web. Quando alguém faz uma solicitação para abrir uma página da web, o navegador se comunica com o servidor desse site. O servidor então encontra os arquivos solicitados para a página e os envia ao navegador. Este é apenas o tipo mais simples de solicitação.
O exemplo acima também é considerado um thread simples. Os servidores web tradicionais criam um único thread para cada solicitação, mas o NGINX não funciona dessa maneira. Como mencionamos anteriormente, o NGINX funciona com uma arquitetura assíncrona e orientada a eventos. Isso significa que threads semelhantes são gerenciados em um processo de trabalho e cada processo de trabalho contém unidades menores chamadas conexões de trabalho. Toda esta unidade é responsável por lidar com threads de solicitação. As conexões de trabalho entregam solicitações a um processo de trabalho, que por sua vez também as encaminhará para o processo mestre. Finalmente, o processo mestre fornece o resultado dessas solicitações.
Pode parecer simples, mas uma conexão funcional pode atender até 1.024 solicitações semelhantes. Por isso, o NGINX pode processar milhares de solicitações sem qualquer dificuldade. É também por isso que o NGINX se tornou uma ótima opção para sites de alto tráfego, como comércio eletrônico, mecanismos de pesquisa e armazenamento em nuvem.
NGINX versus Apache
Entre os servidores web populares, o Apache é um dos principais rivais do NGINX. Existe desde a década de 90 e possui uma grande comunidade de usuários. Se você está curioso para saber qual é o melhor servidor web para suas necessidades, dê uma olhada nesta breve e informativa comparação entre NGINX e Apache.
- Compatibilidade do sistema operacional: A compatibilidade é um dos pequenos detalhes que você deve levar em consideração na escolha do software. Tanto o NGINX quanto o Apache podem ser executados em muitos sistemas operacionais que suportam Unix. Infelizmente, o desempenho do NGINX no Windows não é tão bom quanto em outras plataformas.
- Suporte ao usuário: usuários, desde novatos até profissionais, sempre precisam de uma boa comunidade que possa ajudá-los quando enfrentarem problemas. Embora o NGINX e o Apache tenham suporte por e-mail e um fórum Stack Overflow, o Apache não tem suporte de sua empresa, a Apache Foundation.
- Desempenho: O NGINX pode executar simultaneamente 1.000 conexões de conteúdo estático duas vezes mais rápido que o Apache e usa um pouco menos de memória. Porém, quando comparados pelo desempenho na execução de conteúdo dinâmico, ambos apresentam a mesma velocidade. NGINX é a melhor opção para quem tem um site mais estático.
Conclusão
NGINX é um servidor web que também atua como proxy de e-mail, proxy reverso e balanceador de carga. A estrutura do software é assíncrona e orientada a eventos; o que permite o processamento de muitas solicitações ao mesmo tempo. O NGINX também é altamente escalável, o que significa que seus serviços crescem junto com o tráfego de seus clientes. NGINX e Apache são, na verdade ei, dois dos melhores servidores web do mercado.