Servidores Web são responsáveis por armazenar e trocar informações com outras maquinas. Para se ter um Servidor Web é necessário ter pelo menos dois participantes em cada troca de informações: um cliente, que solicita informações, e um servidor, que atende a esses pedidos.
O servidor web é a peça mais importante da infraestrutura de um site na internet. Ele é um programa que usa o HTTP (Hypertext Transfer Protocol) para servir os arquivos que formam páginas da web para os usuários, em resposta aos seus pedidos, que são encaminhadas pelos clientes HTTP de seus computadores.
Cada lado exige um programa especializado para negociar a troca de dados. No caso do cliente, é usado um browser, como o Google ou Firefox. No lado do servidor é necessário obter um software para negociar transferência de dados entre clientes e servidores via HTTP. O software depende do sistema operacional para seu funcionamento.
Segue exemplo do funcionamento de um servidor web:
Atualmente os servidores web mais utilizados são APACHE e NGINX no IXCProvedor utilizamos o NGINX.
Mas qual a melhor opção de servidor web para seu sistema? Para responder a essa pergunta, faremos uma analise de cada servidor web.
O Nginx é um servidor HTTP (Web) gratuito, open-source e com alta performance.
O mesmo foi desenvolvido pelo programador russo Igor Sysoev em 2005, e tinha como principal objetivo ser um servidor estável, simples de configurar e que necessitasse de poucos recursos ao nível de hardware.
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.
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.
VANTAGENS:
Ênfase em desempenho;
Baixo consumo de recursos de hardware;
Segurança;
Facilmente customizável;
Escalabilidade;
Melhor performance para requisições simultâneas aceitando até 10.000 logins simultâneos;
Código aberto;
Documentação;
Gratuito.
Execução de módulos PHP separado do servidor WEB evitando que o servidor venha a travar pois, o mesmo faz a execução de módulos por tempo de execução e prioridade;
DESVANTANGES:
Baixa flexibilidade;
Não há suporte dedicado;
O módulo não é dinâmico.
Apache Web Server foi criado em 1995 por Rob McCool, que na época era funcionário da NCSA (National Center for Supercomputing Applications).
Este servidor web é distribuído para diversas plataformas de OS, tais como: Windows, Linux, Novel, Mac, OS/2 BeOS e provavelmente um dos servidores web mais seguro, eficiente e com melhor documentação.
Ele é conhecido, também, por ser um dos componentes do LAMP stack, uma combinação de produtos de software livres e open source (código aberto) cuja nomenclatura é gerada a partir das iniciais de cada software que integra o conjunto (Linux, Apache, MySQL e PHP).
VANTAGENS:
Gratuito;
Código Aberto;
Configuração de Módulos para melhor processamento;
Desempenho mesmo com pouco recurso de hardware;
Compatibilidade com sistemas e plataformas;
Segurança;
Flexibilidade;
Documentação.
DESVANTAGENS:
Não há suporte dedicado;
Pode não corresponder muito bem ao processar requisições simultaneamente;
Os bugs podem comprometer a estabilidade do servidor.
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.
ARQUITETURA:
No APACHE pode configurar os módulos conforme a sua necessidade diferente do NGINX que com sua configuração padrão já garante trabalho e eficiência e com ênfase em extrair melhor a performance do hardware.
O NGINX possui uma arquitetura mais programada as necessidades dos tempos atuais sem a necessidade de tantas atualizações de segurança e manutenção diferente do APACHE que mesmo desenvolvido a mais de 20 anos é considerado estável.
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.
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.
SITES DINÂMICOS:
Com base no mesmo teste feito pela Speedemy, o desempenho do servidor Nginx para sites dinâmicos (aqueles que possibilitam maior interação entre um site e seus respectivos visitantes) é equivalente ao do Apache. Ou seja, o Apache é uma alternativa tão boa quanto o Nginx nesse quesito.
SITES ESTÁTICOS:
Conforme testes feitos pela Speedemy, 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).
Como demonstrado acima, ambos nos proporcionam um ótimo desempenho e são facilmente configurados, Nginx foi projetado para simples configuração e baixo uso de recursos enquanto Apache possui uma ampla documentação por conta de sua idade e estabilidade de mercado e uma excelente configuração de módulos, ambos nos proporcionam segurança e desempenho se estiverem devidamente configurados agora, cabe a cada um escolher qual atenderá melhor as suas necessidades.