Você sabe o que é Nginx?
** Post atualizado em: 17/10/2018
Nginx (proncuncia-se "engine-ex") é software open source versátil que pode ser utilizado como webserver, proxy reverso, proxy de e-mail, servidor de streaming, load balancer e com a utilização de módulos, tanto oficiais quanto de terceiros, pode realizar várias outras funções também.
Ufa! Quanta coisa o Ngnix é capaz de fazer, né? São funcionalidades capazes de fornecer às empresas um sistema mais robusto para que possam estar bem colocadas na internet.
A necessidade de uma presença forte na internet é cada vez mais evidente para diversas empresas. Contudo, não é mais suficiente apenas estar presente no mundo online.
O desempenho é mais importante que nunca!
Agora, elas começaram a buscar tecnologias capazes de otimizar o desempenho dos seus sites e aplicações para satisfazer os seus clientes na web.
Misture isso à quantidade massiva de acessos que a internet recebe todos os dias e temos uma receita para problemas nos servidores.
Afinal, eles precisam lidar com muitas requisições e podem sofrer com os limites naturais de infraestrutura.
No entanto, servidores web otimizados são uma solução eficaz para evitar sobrecargas e consumo excessivo de recursos.
O Nginx é um deles, sendo capaz de otimizar os seus processos e oferecer mais desempenho se comparado ao tradicional servidor Apache.
Se você não sabe o que é um servidor web e não conhece as diferenças entre o Nginx e o Apache, fique tranquilo!
Neste artigo iremos lhe explicar tudo sobre essas tecnologias e seus benefícios!
O que é um Servidor Web ?
Quando falamos em servidor web, podemos estar abordando duas coisas em um único nome.
Uma delas é a associação ao sistema que engloba o conjunto de hardware, sistema operacional e aplicações conectado à internet, compondo um servidor de hospedagem e possibilitando o acesso a arquivos através da internet.
Outra, é a referência ao software que lida com a interpretação e a resposta de requisições feitas a um servidor.
Este pacote de softwares lida com as requisições que os navegadores fazem aos servidores de hospedagens, respondendo a elas de maneira apropriada, permitindo que um site esteja disponível.
Neste artigo focaremos no software, nos referindo ao pacote de aplicações instaladas em um servidor de hospedagem que interpretam e respondem requisições, fornecendo acesso aos usuários para sites e outras aplicações.
Existem diversos tipos de servidores web, sendo o Apache o mais utilizado, estando presente em 45,7% dos sites. Em segundo lugar temos o Nginx, utilizado por 39,5% dos websites.
O funcionamento dos servidores web ?
Para que você possa entender o funcionamento de um servidor web, vamos analisar um exemplo de quando você acessa um site na internet.
Ao digitar o endereço no navegador e clicar para acessá-lo, seu browser (navegador) enviará uma requisição ao servidor de hospedagem utilizando o protocolo HTTP ou HTTPS.
Quando a requisição for recebida pelo servidor web, o servidor HTTP vai interpretá-la e responder com os arquivos do site, permitindo que seu navegador exiba a página desejada.
Parece simples, né?
Nós estamos explicando esse funcionamento de uma maneira bem reduzida, sem adentrar em detalhes muito técnicos para não te confundir.
Obviamente vão existir diversos detalhes técnicos nesse processo, um deles pesa a favor do Nginx, fazendo ele consumir menos memória do que o Apache.
O modo como o Nginx trata as requisições é baseado no conceito "event-based web server" ou "servidor web baseado em eventos", utilizando um processo principal ou uma quantidade reduzida de processos disparados somente quando necessários.
O Apache trabalha com o conceito de "process-based server" ou "servidor baseado em processos", gerando um processo para atender cada requisição e consumindo muito mais memória e recursos do servidor.
Apesar de serem duas ferramentas que desempenham a mesma função central e disputarem a preferência do mercado, o Apache e o Nginx podem ser utilizados em conjunto, com o Nginx na linha de frente poupando bastante memória para o Apache.
Legal, né?
Os benefícios da utilização do Nginx ?
Os benefícios do Nginx já começam pela sua criação que foi inspirada em solucionar uma questão delicada: a baixa capacidade dos servidores em processar um determinado número de requisições ao mesmo tempo.
O nome desse problema era C10K Problem (Problema das 10 mil conexões).
O Nginx é extremamente leve e veloz, tem uma documentação bastante completa, conta com uma gama de opções para otimizar o desempenho e é capaz de lidar com muitas conexões graças a sua arquitetura orientada a eventos.
Além disso, ele possui diversas funcionalidades como configuração de hosts virtuais, instalação de módulos, streaming e muito mais.
O principal ponto a ser observado é que ao utilizar o Nginx em seu servidor de hospedagem você estará reduzindo seu consumo de memória e otimizando seu servidor.
Isso impacta positivamente na qualidade dos seus sites, mantendo eles sempre funcionais e com menos possibilidade de queda devido à sobrecarga de memória.
Esses benefícios são capazes de fornecer melhores resultados gerais por causa dos seus impactos diretos na experiência do usuário.
Quanto melhor a experiência do usuário, menores serão as taxas de rejeição do seu site e maiores serão as chances de engajamento e conversão.
Afinal, seu site estará funcionando em pleno potencial!
Um site com baixa taxa de rejeição, bom engajamento e alta velocidade de carregamento possui diversas vantagens em termos de SEO (otimização para mecanismos de busca), alcançando melhores posições em sistemas como o Google, por exemplo.
Isso mostra que a utilização do Nginx é capaz de trazer grandes vantagens diretas e indiretas para sua empresa.
O crescimento da utilização do Nginx ?
Apesar do Apache ainda ser mais utilizado do que o Nginx, isto tende a mudar.
A utilização do Nginx tem conquistada cada vez mais fãs, em junho/2019 42,1% dos websites o utilizavam, contra 43,4% do Apache. Hoje, porém, a taxa é mais baixa tendo 30,6% de websites que o utilizam Nginx, contra 43,9% do Apache. Esse acompanhamento dos dados é feito pelo site W3Techs.
Mesmo com a variação na porcentagem de uso, o Nginx é o único que faz sombra ao Apache, para se ter noção o terceiro colocado, Microsoft-IIS, tem 8,1% de websites que o utilizam. Essas mudanças de preferências podem ter ligação fato das empresas estarem buscando novas formas de otimizar e melhorar suas performances para aumentar seus retornos financeiros.
A utilização da internet cresce sem parar e com tantos consumidores na web, quem oferecer a melhor experiência do usuário acaba saindo na frente nessa corrida rumo à conquista da preferência do cliente.
E como saber qual servidor web é melhor? Uma forma é realizando a boa e velha comparação.
Nginx x Apache
Comparar itens é a maneira mais justa de se chegar a uma decisão sobre algo, e caso esteja procurando a melhor opção, ao fim deste artigo você terá decisão sobre qual servidor web utilizar. Vamos lá?
Como vimos Ngnix e Apache estão praticamente iguais no quesito popularidade, mas apenas ser popular não basta, é necessário que seja o melhor servidor web.
O Apache já conta com vários módulos e, um dos principais recursos dele, é também o seu maior ponto fraco: o suporte a .htaccess. A forma que o .htaccess foi implementado faz com que o Apache consuma muito mais recursos do servidor quando vai entregar qualqeur requisição.
Já o Nginx foi pensado para ser leve e rápido, mas não necessariamente simples. Tanto é que no seu início a documentação só era possível em russo. Nada fácil entender russo, né?
Em resumo, o Apache tem mais recursos e módulos por padrão, além de ser muito bom documentado, já que por muito tempo foi o preferido - e praticamente a única opção da indústria de hospedagem, mas peca em desempenho. Enquanto que o Nginx tem conseguido espaço nos últimos anos, com diversos módulos, tanto oficiais quando de terceiros, e até pagos, que são desenvolvidos para realizar as diversas funções que o Apache não é capaz de fazer ou não faz bem.
O que um tem o outro não e vice-versa. Mas por que não ter tudo que o Nginx e o Apache têm em um só webservice? Bem, existe essa opção, contudo ela é paga.
Essa solução se chama LiteSpeed, tenta unir a performance do Nginx com a praticidade do Apache. Possui um suporte mais eficiente ao .htaccess e capacidade de ler e entender os arquivos de configuração do Apache, permitindo uma migração de tecnologia sem dor de cabeça.
Bem legal o LiteSpeed, né? E se eu te disser que tem uma opção ainda melhor? Ela atende pelo nome de OpenLiteSpeed, também é um servidor web, mas diferente do LiteSpeed, ele é gratuito.
O OpenLiteSpeed foi criado com base no LiteSpeed, com um suporte parcial a .htaccess e outros recursos do Apache, além de uma API própria para executar código PHP, Node, Ruby e Python, garantindo assim uma maior compatibilidade, facilidade e desempenho na execução desses recursos.
Conclusão
E aí, o que achou do Nginx? Um servidor web bem bacana, né?
Aqui na Configr a gente oferece o Nginx por padrão para todas as aplicações. Sendo mais detalhado, oferecemos uma mistura de Nginx e OpenLiteSpeed. Funciona assim: as requisições chegam no Nginx e ele decide o que fazer, tendo duas opções.
- Se for um arquivo estático, como imagem, javascript, CSS ou video, por exemplo, o Nginx entrega esse arquivo diretamente para o usuário, pois ele é o mais eficiente de quando se trata de arquivo estático.
- Se for PHP ou Node, o Nginx encaminha a requisição pro OpenLiteSpeed, que vai processar ela e entregar para o Nginx devolver o resultado para o visitante.
Ficou curioso para testar o poder do Nginx e do OpenLiteSpeed nas suas aplicações? Crie sua conta na Configr e teste por até 7 dias grátis.