Se procura saber o que é Nginx então esse breve e rápido artigo com toda certeza irá tirar as suas dúvidas sobre o assunto. Então o Nginx é um software de código aberto exclusivamente para servidores da internet, que foi lançado especialmente para a navegação HTTP.
Nos dias atuais o mesmo também funciona como balanceador de carga HTTP, proxy reverso, e também proxy de e-mail para os protocolos POP 3, IMAP e SMTP.
O lançamento do mesmo foi em outubro de 2.004, e o criador desse software foi o Igor Sysoev. O mesmo iniciou a criação do projeto no ano de 2.002 para tentar solucionar um problema conhecido como C10K. Onde o seu maior e principal desafio era conseguir gerenciar 10 mil conexões simultâneas (ao mesmo tempo).
Saiba que atualmente existem ainda muito mais conexões, e que um servidor faz o gerenciamento tranquilamente. E justamente por esse simples motivo ele disponibiliza para seus usuários uma excelente arquitetura assíncrona, o que faz dele um dos tipos de servidores mais confiáveis da atualidade. Tanto na questão de escala, como de desempenho e velocidade.
Como o Nginx consegue facilmente suportar diversas conexões de altíssima velocidade, a grande maioria dos web sites de altíssimo tráfego como por exemplo a Netflix, o Google, a Adobe, o WordPress entre outros já estão utilizando.
Como funciona?
Agora que você já sabe o que é Nginx, não poderíamos deixar de mencionar como ele funciona, mas antes de entrarmos nesse tópico, você então precisa saber primeiramente como um servidor de internet opera na prática.
O servidor funciona assim, toda vez que alguém está navegando pela web, seja em redes sociais, ou fazendo pesquisas nos buscadores, e quando daí ele encontra o que deseja e resolve clicar no link. Ele acaba fazendo uma solicitação.
Então ao solicitar o carregamento de uma página na internet, assim o navegador entrará em contato com o servidor do site. Daí o servidor irá buscar pelos arquivos que foram solicitados e simplesmente faz a entrega para o navegador.
Caso você não saiba, os servidores web tradicionais criam uma Thread individual para cada uma das solicitações, mas saiba que o Nginx não funciona dessa forma.
Conforme citamos anteriormente, o mesmo tem excelente performance, e também arquitetura assíncrona , orientada a eventos. O que significa que as threads parecidas são geridas por um processo chamado worker. Que por sua vez cada processo worker possui unidades menores, que são conhecidas como conexões worker.
Assim essa unidade inteira é totalmente responsável pra cuidar de todas as solicitações theaders, pois as conexões worker levam as solicitações somente até um processo worker, que daí então ele é enviado ao processo master. Que por fim o processo master mostra o resultado da solicitação efetuada.
De uma certa forma isso até pode parecer simples, mas saiba que um única conexão worker é capaz de cuidar de até 1.024 solicitações. E justamente por esse motivo o servidor Nginx é totalmente capaz de conseguir atender a milhões de solicitações sem o menor problema. Esse também é um outro grande motivo para sites que tem uma grande quantidade de tráfego usarem essa tecnologia.
Apache x Nginx:
De praticamente todos os servidores web, o Apache é o mais popular de todos eles, e também é praticamente o principal adversário do servidor Nginx. O Apache surgiu nos anos 90 e também possui uma grande quantidade de usuários em todo o mundo.
Mas se você vai criar um projeto online, e ainda está em dúvidas sobre qual é o tipo e o melhor servidor deve utilizar em seu projeto, confira nosso rápido comparativo entre os dois, segue:
Performance e desempenho:
Ambos os 2 servidores possuem a mesma velocidade, mas o Nginx consegue facilmente fazer a execução de 1.000 conexões de conteúdo estático ao mesmo tempo, isso 2x mais rápido que o Apache. E ainda utilizando muito menos memória. O servidor Nginx nesse caso é com toda certeza a melhor opção.
Compatibilidade de SO:
De forma alguma a compatibilidade é um dos detalhes que devem sim ser levados em consideração na escolha do servidor. Nesse caso os dois conseguem operar com muitos sistemas operacionais, que por sua vez suportam o sistema UNIX.
Mas infelizmente nesse quesito o desempenho e a performance do servidor tipo Nginx no Windows não é tão boa assim quanto em outras plataformas.
Suporte:
Não importa se você é um usuário iniciante ou avançado, todos sem exceção necessitam de um lugar ou comunidade na internet para se ajudarem entre si quando inesperados problemas surgirem.
Os dois oferecem suporte via e-mail, e também contam com um fórum no Stack Overflow. Infelizmente o Apache deixa muito a desejar no quesito suporte que vem da própria empresa, que é a Apache Foundation.
Concluindo:
Como você pode ler, o Ngnix é um servidor de internet que também funciona como proxy reverso, balanceador de carga e também como proxy de e-mail. A estrutura de todo o seu software é toda assíncrona, e toda orientada a eventos. Que por sua vez possibilita um grande número de solicitações simultâneas.
Não podemos de forma alguma deixar de mencionar também que o servidor tipo Nginx é altamente escalável, o que significa que seu trabalho cresce juntamente com o aumento do volume de tráfego.
Tanto o Apache quanto o Ngnix são com toda certeza os melhores servidores web da atualidade, agora só resta você escolher qual vai querer usar em seus projetos online. Sucesso em sua escolha 🙂