NGINX e WordPress são dois softwares largamente populares. O primeiro conquistou muito espaço do Apache, enquanto o segundo, centenas de gerenciadores de conteúdo.
O servidor web Apache sempre foi muito popular. Eu, particularmente, tive meu primeiro contato com servidores web através dele.
Através da Apiki, estando por trás do desenvolvimento de grandes projetos em WordPress com estruturas modernas e audiência de milhões de usuários e Page Views.
O NGINX é o servidor web focado em performance, projetado para trabalhar com a concorrência de milhões de requisições e vem sendo a opção, praticamente unânime, dos novos projetos baseados em WP.
Conceito de Apache
O servidor Apache ou Servidor HTTP Apache é um servidor web muito popular, usado principalmente no Linux.
Ele é web livre, ou seja, é gratuito e pode ser estudado e modificado através de seu código fonte por qualquer pessoa.
Conceito de NGINX
NGINX (lê-se “engine x”) é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance.
Tem uma arquitetura orientada a eventos e foi criado para solucionar uma questão delicada: a baixa capacidade dos servidores em processar um determinado número de requisições ao mesmo tempo.
LAMP e as aplicações modernas
A sigla LAMP é comum entre as equipes de infraestrutura. LAMP é composto pelas iniciais de Linux, Apache, MySQL e PHP.
Estruturas de aplicações modernas não trabalham somente com essas tecnologias. Elas adicionam novos ingredientes e, em alguns casos, substituem.
É o caso da troca do Apache pelo NGINX.
É muito comum termos a combinação: Linux, NGINX, MySQL (ou MariaDB, Amazon Aurora) e PHP + Node.js. Várias outras combinações podem ser utilizadas, baseadas nas necessidades e requisitos dos projetos em questão.
A crescente também é considerável com o uso de cointaners através do Docker e o conceito de microservices.
Você conhece as principais diferenças entre NGINX e Apache?
Tweet
NGINX ou Apache: principais diferenças
Ambos são servidores web. Mas há consideráveis diferenças entre eles.
A disparidade precisa ser conhecida, entendida e levada em consideração nas tomadas de decisões de negócios, desenvolvimento e manutenção.
Estatísticas de uso
O Apache, sem dúvidas, é o servidor web mais popular.
No entanto, o NGINX vem a cada ano, e de forma consistente, ganhando espaço, popularidade e sendo a preferência dos novos projetos.
Logo, a mudança e, por conseguinte, o primeiro lugar em uso será muito em breve.
Nas análises do site BuiltWith, conseguimos analisar sua participação de mercado em diferentes cenários. Em alguns casos, como o Top 10k sites ele fica empatado com o Apache.
.htaccess
Apache tem uma configuração descentralizada, possivelmente espalhada em diversos diretórios da aplicação através do arquivo oculto .htaccess.
É possível desabilitar esta opção, mas é prática muito comum mantê-la.
NGINX tem uma configuração centralizada, num único arquivo. Ele não reconhece, logo não interpreta, o .htaccess.
Módulos
Quase todos os softwares tem uma arquitetura que permite sua extensibilidade através de outros softwares que o complementam. Alguns, como o WordPress, o chamam de plugins, outros de add-ons.
No caso dos servidores web o chamamos de “módulos”.
NGINX e Apache têm seus mecanismos de módulos, mas trabalham de forma diferenciada um do outro.
Através do segundo, os módulos podem ser carregados em tempo de execução, enquanto no primeiro os módulos são carregados dinamicamente e precisam ser compilados junto ao seu core.
Através dos módulos ambos conseguem ter as mesmas funcionalidades geralmente requisitadas, como: compressão de arquivos, autenticação, funcionalidade de e-mail, login, reescrita de URLs, Geolocalização, criptografia, Proxing e vários outros.
Arquivos e interpretação de URLs
Esse tipo de atividade nos servidores web é muito utilizada para uma infinidade de possibilidades, como a implementação de URLs amigáveis, bloqueio de determinados arquivos para maior segurança e várias outras regras.
Ambos permitem a interpretação direta dos arquivos quanto de forma abstrata.
Expressões regulares são muito utilizadas para o encontro prático de uma combinação de possibilidades.
NGINX foi desenvolvido para ser tanto um servidor web quanto um servidor de proxy.
Devido sua arquitetura requerida para essas duas atividades, sua interpretação primária são com URLs.
Enquanto o Apache utiliza as diretrizes <Directoy>, <Files> e <Location>, o NGINX utiliza os blocos server e locations para interpretar todas as requisições.
Por ser configurado para interpretar diferentes padrões de URLs, o NGINX não verifica o sistema de arquivos até que ele esteja preparado para servir a requisição, o que explica a não implementação de um mecanismo como arquivo .htaccess com o Apache.
As regras de segurança e performance
Todo servidor web precisa aplicar regras de segurança para proteção das aplicações que estão rodando em seu mecanismo.
Todas as dicas que você encontrar sobre segurança e que serão aplicadas em servidores web, saiba que é possível, em quase 100% dos casos, aplicar em ambos.
Atente-se que no Apache as regras normalmente serão aplicadas no arquivo .htaccess ou no httpd.conf.
Já no NGINX, elas serão aplicadas nos blocos server/locations no arquivo de configuração.
O mesmo se aplica às regras para melhorias de performance, como otimização de imagens, aplicação de regras de cachê e compressão de arquivos.
Conclusão
Como já dito, os novos projetos estão sendo elaborados com arquiteturas mais modernas e conceitos inovadores.
Neste quesito, o uso do NGINX tem sido mais aplicável e se tornado a opção das maiorias das equipes, seja dos desenvolvedores ou SysAdmins.
As equipes de marketing, quando conhecem a diferença de lidar com picos de audiência entre NGINX e Apache, passam a sugerir o primeiro por conseguirem melhor desempenho e atendimento de várias requisições simultâneas.
O mesmo acontece com as equipes de produto. Os casos de sucesso do NGINX têm permitido manter um servidor com menor custo e maior resposta à demanda de crescimento.
No WP Host, o produto de hospedagem WordPress da Apiki, estamos aplicando a migração de toda a base para o NGINX e será muito em breve a única opção de servidor web que suportaremos.