O servidor web Nginx (lê-se engine-x) foi desenvolvido no início da década de 2000 — mais precisamente em 2002 —, por Igor Sysoev e lançado como servidor HTTP e IMAP/POP3/Proxy em 2004
O termo “servidores web” certamente nunca esteve tão presente na boca do povo como hoje.
O crescimento no número de empresas que viram a internet como uma grande fonte de lucros, além dos próprios estudantes interessados em aprender sobre o tema, contribuiu muito para que o conceito viesse a ser mais bem difundido.
Caso você não se lembre ou ainda não saiba o que é um servidor web, aqui vai uma breve definição:
Enquanto o servidor nada mais é que um computador, disponível 24 horas por dia, que armazena dados de um site/aplicação online e os fornece para os clientes por meio de uma transferência de protocolos (HTTP e FTP), o servidor web é o software que processa as solicitações do cliente e garante que a troca de informações seja efetuada.
Não são poucos os servidores web existentes no mercado. Porém, dentre todos, dois deles se destacam por juntos dominarem mais de 65% do tráfego global (considerando somente sites ativos): o Apache e o Nginx.
Você poderá baixar esse material aqui, para saber mais detalhes sobre as diferenças entre o Apache e o Nginx.
Caso você queira implementar um servidor web rodando Apache, pegue uma cópia desse guia rápido aqui, e para aprender sobre a configuração do servidor web rodando Nginx, verifique também esse artigo.
Enquanto o Apache integra o LAMP stack, o Nginx é componente de uma variável do LAMP chamada LEMP (Linux, “Engine-x”, MySQL, PHP), também um conjunto de produtos de software livres.
Como o Nginx se destacou no mercado dominado pelo Apache?
Naquele período, o Apache já estava consolidado como o principal servidor web, utilizado pela maioria dos usuários ao redor do mundo, porém, com a necessidade cada vez maior de processar requisições simultaneamente, nasceu um problema que ficou conhecido como C10K.
Embora já tenha sido corrigido no Apache, o fator C10K, que exigia dos servidores a capacidade de processar simultaneamente 10 mil clientes, gerou a necessidade de criar uma nova solução, ou seja, um servidor web capaz de suportar a crescente demanda de conexões.
Para superar este enorme desafio, Sysoev desenvolveu uma estrutura chamada EDA (Event-driven Architecture), que consiste em uma maior capacidade de resposta utilizando menos recursos do sistema.
Em outras palavras, o Nginx foi criado para lidar melhor com o grande número de solicitações ao mesmo tempo, sem que o processo exija uma supermáquina. Uma arquitetura com grande potencial para se expandir no mercado.
QUAIS SÃO AS VANTAGENS DO SERVIDOR WEB Nginx?
- ênfase em desempenho;
- baixo consumo de
- recursos de hardware;
- segurança;
- facilmente customizável;
- escalabilidade;
- melhor performance para requisições simultâneas;
- código aberto;
- documentação;
- gratuito.
- Serve páginas estáticas e suporta também FASTCGI (php)
- Proxy reverso com cachê
- Load balance
- Streamming de FLV e MP4
E OS CONTRAS DESSE SERVIDOR WEB?
- baixa flexibilidade;
- não há suporte dedicado;
- o módulo não é dinâmico
Nginx é melhor que o Apache?
Essa questão tem repercutido bastante na internet nos últimos anos. Entretanto, a verdade é que existem muitos “evangelistas” por parte de ambos os servidores, isto é, há defensores do Apache e, talvez, mais ainda do Nginx, que levam em consideração suas preferências por determinado sistema no momento de explicar as vantagens e as desvantagens.
ARQUITETURA
No Nginx a configuração padrão garante um trabalho eficiente e com ênfase em extrair a melhor performance do hardware — mas atenção: é importante não confundir com consumo de recursos da máquina.
Em suma, o Nginx possui uma arquitetura mais adequada às necessidades dos tempos atuais, não requerendo tantas atualizações de segurança e de manutenção como o Apache (que, até pela flexibilidade, se adapta aos problemas).
Contudo, é preciso levar em consideração que o Apache foi pensado, desenvolvido e lançado ainda na década de 1990.
É um servidor com idade para ser visto como um clássico, porém ele é capaz de se manter atual mesmo com todas as mudanças vivenciadas pela internet nos últimos 20 anos.
Para corresponder com alta performance e melhor aproveitamento dos recursos de hardware, a arquitetura do Nginx merece o seu destaque.
MÓDULOS DO NGINX
Já os módulos do Nginx, embora sejam úteis e forneçam as mesmas capacidades, não oferecem o dinamismo e a comodidade do Apache, fazendo-se necessárias a seleção e a compilação dos módulos no software primário.
O fornecimento de suporte de limitação de taxa, proxy, streaming, criptografia, autenticação, e-mail, entre muitos outros, podem ser encontrados também o Nginx.
Performance do Nginx em site estático
A performance do Nginx para sites estáticos (páginas da web tradicionais) se mostrou bem superior (2,5 vezes mais rápida) à do Apache em um teste envolvendo 1.000 conexões simultâneas.
Outro teste, desta vez envolvendo 512 conexões, demonstrou uma performance 2 vezes superior e um consumo de recursos 4% menor (15,5% do Apache versus 11,8% do Nginx).
Esses números são decorrentes das diferenças contrastantes de cada arquitetura.
A estrutura do Nginx, desenvolvida justamente para suportar uma boa carga de conexões simultaneamente, se mostrou muito mais rápida e eficiente na questão do uso de recursos.
Segundo a netcraft o servidor WEB de alta performance o NGINX tem hoje mais de 16% do mercado de servidores WEB, perdendo é claro para o mais utilizado no mundo que é o apache.
Em um experimento usando o Apache 2.x e NGINX, para servir uma página HTML, temos o seguinte resultado:
- Apache: 4 processos WORKER, 30% CPU, 17MB de memória, conseguiu abrir 6.500 requests por segundo.
- Nginx: apenas 1 processo,15% CPU, 1MB de memória, conseguiu abrir 11.500 requests por segundo.
Como instalar o Servidor WEB Nginx no Linux
Agora vamos tratar de instalar o nosso servidor web, que irá possibilitar alta performance em nossas aplicações, para esse laboratório irei instalar o seguinte:
- Servidor LINUX Debian 8
- Servidor WEB NGINX
Caso você queira estudar mais sobre a implementação de um servidor WEB com Nginx utilizando o HHVM (Hiphop Virtual Machine) para interpretar a aplicação WEB, junto com o Banco de dados MariaDB, em substituição ao Mysql para rodar o CMS WordPress, que claro é escrito em PHP, verifique esse artigo aqui.
A instalação do DEBIAN 8 será totalmente abstraída desse artigo por motivos óbvios, é um assunto bem mais amplo, mas eu sugiro você participar da primeira aula do PROFISSIONAIS LINUX, onde eu trato bem esse assunto.
Toda a instalação aqui pode sim ser replicada em UBUNTU SERVER, os comandos são os mesmos, e você tiver alguma dúvida com relação a algum comando, eu acho que você pode pegar uma cópia desse ebook, o ebook do Curso Linux Ubuntu.
Agora vamos lá, vamos começar a instalar o nosso servidor WEB.
# apt-get update # apt-get install nginx unzip
Você já pode também iniciar o servidor WEB NGINX para ter certeza que a instalação deu certo.
# systemctl start nginx
Agora acesso o ip de seu servidor WEB com o seu navegador preferido.
Sendo assim, o Nginx é sem dúvidas o servidor WEB mais Rápido do Mercado, sua utilização está em amplo crescimento.
Caso você queria um comparativo completo do Apache Vs Nginx, você pode baixar esse PDF aqui.
Até a próxima.