Você está na página 1de 26

Apache vs.

Nginx:
o confronto final
entre os dois
servidores web mais
utilizados no Linux
03
Introdução

06
O que é o Apache?

12
O que é Nginx?

15
Quais dos dois é melhor?

21
É possível usar os dois juntos?

24
Conclusão

26
Sobre a E-TINET
Introdução
INTRODUÇÃO

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.

4
INTRODUÇÃO

Caso você não se lembre ou ainda não saiba Falando nisso, você sabe qual o servidor
o que é um servidor web, aqui vai uma breve web que o seu website utiliza? Então, anote
definição: essa dica: digite o comando curl –I url_do_
seu_site. Para descobrir o servidor da página
Enquanto o servidor nada mais é que linux.org, por exemplo, é só digitar a linha
um computador, disponível 24 horas curl –I www.linux.org.
por dia, que armazena dados de um
site/aplicação online e os fornece Se você fez o teste, também concluiu, por
para os clientes por meio de uma meio do pequeno relatório gerado, que o site
transferência de protocolos (HTTP oficial do Linux é mantido pelo Apache. Mas
e FTP), o servidor web é o software isso faz do Apache um servidor web melhor
que processa as solicitações do que o Nginx? Não é de hoje que essa questão
cliente e garante que a troca de percorre pelo universo Linux — e até mesmo
informações seja efetuada. pelo universo dos servidores.

Não são poucos os servidores web existentes Para resolver essa questão, este e-book foi
no mercado. Porém, dentre todos, dois deles produzido com uma única finalidade: dar a
se destacam por juntos dominarem mais de você informações relevantes sobre ambos os
65% do tráfego global (considerando somente sistemas para que você possa tirar as suas
sites ativos): o Apache e o Nginx. próprias conclusões. Vamos começar?

5
O que é o Apache?
O QUE É O APACHE?

Criado no ano de 1995, por Rob McCool, ainda


quando funcionário da NSCA (National Center of
Supercomputing Applications), o Apache é um dos
servidores mais bem conceituados do mercado.

7
O QUE É O APACHE?

Ele é conhecido, também, por ser um Por mais que você não perceba, é certo que, ao Isso porque são inúmeros os sites que
dos componentes do LAMP stack, uma longo de sua trajetória como internauta desde utilizam o Apache como servidor web. Logo,
combinação de produtos de software livres e os tempos em que conheceu o mundo digital, boa parte de sua navegação por páginas da
open source (código aberto) cujo acrônimo é o grau de interação entre você e o Apache web, autenticações, compras, transações,
representado pelas iniciais de cada software pode ter sido maior do que com um velho participações em fóruns, entre outras
que integra o conjunto (Linux, Apache, amigo, por exemplo. atividades online, foram intermediadas por
MySQL e PHP). alguma das versões do Apache.

8
O QUE É O APACHE?

O QUE FAZ DO APACHE O SERVIDOR MAIS UTILIZADO?

As hipóteses que envolvem questões como marketing


devem ser imediatamente descartadas — afinal, se a
propaganda fosse capaz de definir a demanda do ser
humano por tecnologia, todos nós usaríamos somente a
linha de produtos da Microsoft.

Deixando de lado as hipóteses, o servidor Apache é utilizado


em virtude da sua performance, compatibilidade com as
mais diversas plataformas e o alto nível de segurança que
poucos servidores web têm condições de oferecer.

Um dos fatores que corroboram para o seu excelente


desempenho é a variedade de métodos para
processamento das solicitações web para promover maior
eficiência, sobretudo no uso de memória RAM e latência.

A metodologia de processamento do Apache pode ser


configurada de três maneiras diferentes por meio dos
seus módulos de multiprocessamento (MPMs — Multi-
Processing Modules).

9
O QUE É O APACHE?

Veja logo a seguir uma breve explicação — »» Event: este módulo deriva do módulo
mais didática do que técnica — sobre cada worker, permitindo que um número
módulo: maior de requisições seja recebido.

»» Prefork ou modelo de processo (process Além da capacidade de aplicar diferentes


model): é o prefork original do Apache. metodologias de processamento, o servidor
Esse módulo atende cada requisição Apache exige pouquíssimos recursos de
como um processo individual, o que, hardware para ser executado. O mais simples
guardando os fatores técnicos, significa computador que podemos encontrar no
que ele não funciona bem com muitas mercado (um dual core com 2 GB de RAM,
conexões simultâneas; por exemplo) é plenamente capaz de rodar o
servidor web em ambiente corporativo.
»» Worker: diferentemente do prefork, o
modulo worker implementa um servidor O fato de ser um software gratuito também é
de multiprocessamento. Porém, embora algo expressivo e justifica a sua preferência por
ele seja capaz de trabalhar com várias boa parte dos usuários. Contar com um software
tarefas simultaneamente, está sujeito a de altíssima qualidade sem a necessidade de
sofrer alguns problemas caso o tráfego comprar uma licença, sem dúvidas, torna o
do site for muito alto; Apache bastante atrativo para o mercado.

10
O QUE É O APACHE?

QUAIS SÃO OS PRÓS DO SISTEMA?

»» gratuito; »» compatibilidade
com sistemas e
»» código aberto; plataformas;

»» configuração de »» segurança;
módulos;
»» flexibilidade;
»» desempenho;
»» documentação.

E QUAIS SÃO OS CONTRAS?

»» não há suporte dedicado;

»» pode não corresponder muito


bem ao processar requisições
simultaneamente;

»» os bugs podem comprometer a


estabilidade do servidor.

11
O que é Nginx?
O QUE É NGINX?

O servidor Nginx (lê-se engine-x) foi desenvolvido Enquanto o Apache integra o LAMP stack, o Nginx é componente de uma
no início da década de 2000 — mais precisamente variável do LAMP chamada LEMP (Linux, “Engine-x”, MySQL, PHP), também
em 2002 —, por Igor Sysoev e lançado como um conjunto de produtos de software livres.
servidor HTTP e IMAP/POP3/Proxy em 2004.
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.

13
O QUE É NGINX?

QUAIS SÃO OS PRÓS DESSE SERVIDOR?

»» ênfase em desempenho; »» melhor performance para


requisições simultâneas;
»» baixo consumo de
recursos de hardware; »» código aberto;

»» segurança; »» documentação;

»» facilmente customizável; »» gratuito.

»» escalabilidade;

E OS CONTRAS?

»» baixa flexibilidade;

»» não há suporte dedicado;

»» o módulo não é dinâmico.

14
Quais dos dois
é melhor?
QUAIS DOS DOIS É MELHOR?

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.

O objetivo deste e-book é fornecer informações da forma mais isenta


possível, afinal, queremos ajudar você a decidir qual é o melhor
servidor para suprir as suas necessidades. Lembrando que elas podem
muito bem não ser as mesmas que a da maioria dos que defendem
a adoção do Nginx ou do Apache. Portanto, elencamos abaixo alguns
comparativos relacionados à performance, à praticidade, à arquitetura e ao
funcionamento dos módulos de cada servidor web.

16
QUAIS DOS DOIS É MELHOR?

FACILIDADE NA INTERFACE

Ambos os servidores podem ser adquiridos pré-configurados e prontos para usar, bastando fazer a instalação no servidor. Porém, para quem
está iniciando com servidores web ou até mesmo com o sistema Linux, a configuração do Nginx pode ser relativamente mais fácil.

17
QUAIS DOS DOIS É MELHOR?

ARQUITETURA

Pode-se destacar como mais significativa a Contudo, é preciso levar em consideração que
diferença dos modelos de eventos. No Apache, o Apache foi pensado, desenvolvido e lançado
como explicado anteriormente, o administrador ainda na década de 1990.
pode configurar o método de processamento de
acordo com os módulos disponíveis. É um servidor com idade para ser visto
como um clássico, porém ele é capaz
Já no Nginx, isso não se mostra necessário, já de se manter atual mesmo com todas
que a configuração padrão garante um trabalho as mudanças vivenciadas pela internet
eficiente e com ênfase em extrair a melhor nos últimos 20 anos.
performance do hardware — mas atenção: é
importante não confundir com consumo de Para corresponder com alta performance
recursos da máquina. e melhor aproveitamento dos recursos de
hardware, a arquitetura do Nginx merece o
Em suma, o Nginx possui uma arquitetura mais seu destaque. Em longo prazo, o Apache já
adequada às necessidades dos tempos atuais, demonstrou que pode se preparar para atender
não requerendo tantas atualizações de segurança as suas necessidades.
e de manutenção como o Apache (que, até pela
flexibilidade, se adapta aos problemas).

18
QUAIS DOS DOIS É MELHOR?

MÓDULOS

Os módulos do Apache são muito mais flexíveis, ou seja, adaptáveis às


necessidades de um site ou aplicação, além de serem dinâmicos. O Apache
possui um núcleo que sempre se mantém presente, permitindo que os
seus módulos sejam ativados/desativados ou funcionalidades sejam
adicionadas/removidas, sem que haja a interrupção do servidor.

A biblioteca de módulos também é um grande atrativo do Apache e


que não pode ser encontrada no Nginx, ao menos por enquanto, pois a
diferença de maturidade entre ambos os servidores é muito grande. Essa
diversidade de módulos faz com que o Apache se adapte por meio das
alterações feitas na funcionalidade do servidor.

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, são um destaque
positivo do Apache que podem ser encontrados também o Nginx.

19
QUAIS DOS DOIS É MELHOR?

PERFORMANCE

Ao avaliar a performance dos servidores, consideramos alguns testes, realizados pelos sites Eschrade e Speedemy, que mediram o
desempenho dos sistemas por meio de uma certa quantidade de requisições para diferentes tipos de conteúdos (estáticos e dinâmicos).
Veja os detalhes logo abaixo.

Site estático Site dinâmico

A performance do Nginx para sites estáticos (páginas da web Com base no mesmo teste feito pela Speedemy, o desempenho
tradicionais) se mostrou bem superior (2,5 vezes mais rápida) à do do servidor Nginx para sites dinâmicos (aqueles que possibilitam
Apache em um teste envolvendo 1.000 conexões simultâneas. maior interação entre um site e seus respectivos visitantes) é
Outro teste, desta vez envolvendo 512 conexões, demonstrou equivalente ao do Apache.
uma performance 2 vezes superior e um consumo de recursos 4%
menor (15,5% do Apache versus 11,8% do Nginx). Ou seja, o Apache é uma alternativa tão boa quanto o Nginx
nesse quesito.
Esses números são decorrentes das diferenças contrastantes
de cada arquitetura. A estrutura do Nginx, desenvolvida Uma das vantagens do Apache, como dito anteriormente, é a sua
justamente para suportar uma boa carga de conexões flexibilidade. Atualmente, a mesma estrutura EDA utilizada no
simultaneamente, se mostrou muito mais rápida e eficiente na Nginx pode ser executada no Apache — o que explica a equivalência
questão do uso de recursos. entre os dois servidores para rodar conteúdos dinâmicos.

20
É possível usar
os dois juntos?
É POSSÍVEL USAR OS DOIS JUNTOS?

O melhor de toda essa “batalha” entre servidores web é que,


no final da contas, eles não são concorrentes. Não existe
o mocinho e nem o vilão. Na verdade, podemos considerar
essa a união entre um sábio nativo e um jovem guerreiro.

22
É POSSÍVEL USAR OS DOIS JUNTOS?

Como cada um possui características Conforme aprendemos ao longo do conteúdo, Na prática, você poderá utilizar o servidor
distintas, tanto com relação aos objetivos o Apache conta com um grau de maturidade Nginx para lidar com conteúdos estáticos, já
dos seus criadores quanto na execução muito superior e se caracteriza pela sua que o desempenho para essa tarefa é muito
dentro do servidor, eles podem ser utilizados flexibilidade (termo constantemente superior. O papel de receber arquivos que
juntos sem problema algum! reproduzido até aqui), enquanto o Nginx é exigem muito processamento, no caso, pode
reconhecido por ser o sistema que suportará ficar a cargo do bom e velho Apache.
a carga pesada sem demandar esforços.

23
Conclusão
CONCLUSÃO

Infelizmente, chegamos ao fim dessa agradável e sadia


batalha entre dois gigantes do mundo dos servidores!
De um lado, tivemos o Apache, um veterano de guerra
que superou, graças à sua forte adaptabilidade, um
problema que ameaçou a sua própria existência, sendo
hoje o servidor mais utilizado no mundo. Do outro,
vimos o Nginx e todo seu desempenho e eficiência
para lidar com o trabalho duro. Um servidor que surgiu
para atender à grande demanda e, atualmente, vem
conquistando um número cada vez maior de adeptos.

Agora, qual deles será o escolhido? Se você ficou triste porque a batalha
acabou (pelo menos neste material), sinta-se feliz por poder escolher não
apenas um, mas pelos dois servidores web. Com isso, o seu site será capaz
de proporcionar a melhor experiência possível ao seu público.

25
E-TINET é um projeto pessoal de Pedro Delfino, profissional com
mais de 14 anos de experiência em sistemas Linux. A E-TINET tem
como objetivo treinar e capacitar os profissionais de tecnologia a
trabalharem com o Linux profissionalmente.

Veja aqui como começar uma formação Linux profissional e domine, de


uma vez por todas, esse sistema tão importante para a sua carreira.

Você também pode gostar