O que é um servidor de aplicações em comparação com um servidor web?

Apesar do contraste sugerido por “servidor de aplicações vs. servidor web”, na Internet, os dois tipos de servidor geralmente são implantados em conjunto com um objetivo comum: atender às solicitações dos usuários por conteúdo de um site. Não há documentos de padronização que definam as características dos servidores web e dos servidores de aplicações, mas vejamos como esses termos são geralmente compreendidos.

A função fundamental de um servidor web é aceitar e atender às solicitações dos clientes por conteúdo estático de um site (páginas HTML, arquivos, imagens, vídeos e assim por diante). O cliente é quase sempre um navegador ou aplicativo móvel, e a solicitação assume a forma de uma mensagem do Protocolo de Transferência de Hipertexto (HTTP), assim como a resposta do servidor web.

A principal função de um servidor de aplicações é fornecer aos seus clientes acesso ao que é comumente chamado de lógica de negócios, que gera conteúdo dinâmico; ou seja, trata-se de um código que transforma dados para fornecer a funcionalidade especializada oferecida por uma empresa, serviço ou aplicação. Os clientes de um servidor de aplicações geralmente são as próprias aplicações e podem incluir servidores web e outros servidores de aplicações. A comunicação entre o servidor de aplicações e seus clientes pode ocorrer por meio de mensagens HTTP, mas isso não é obrigatório, como ocorre na comunicação entre servidores web e seus clientes. Muitos outros protocolos são populares, incluindo as variantes de CGI.

Como os servidores de aplicações e os servidores web trabalham juntos?

Em uma implantação típica, um site que fornece conteúdo estático e gerado dinamicamente utiliza servidores web para o conteúdo estático e servidores de aplicações para gerar conteúdo dinamicamente. Um proxy reverso e um balanceador de carga ficam à frente de um ou mais servidores web e de um ou mais servidores de aplicações web para direcionar o tráfego ao servidor apropriado, primeiro com base no tipo de conteúdo solicitado e, em seguida, no algoritmo de balanceamento de carga configurado. A maioria dos programas de balanceamento de carga também atua como servidor proxy reverso, o que simplifica a arquitetura dos servidores de aplicações web.

Por que essa pergunta?

Por que existe a dúvida se algo é um servidor de aplicações ou um servidor web? Isso se deve, em grande parte, ao fato de que o design e o uso desses dois tipos de servidor passaram a se sobrepor cada vez mais à medida que as demandas dos sites aumentaram. Muitas aplicações populares funcionam tanto como servidores web quanto como servidores de aplicações (como Apache HTTP Server, Express, Hapi e Koa).

Outro ponto em comum é que alguns servidores de aplicações web usam HTTP como protocolo de comunicação. Da mesma forma, alguns servidores web acabam se assemelhando a servidores de aplicações porque contam com módulos e recursos integrados que oferecem suporte nativo a linguagens populares, como PHP, ou atuam como proxy e convertem solicitações HTTP para o protocolo usado pela aplicação (como FastCGI).

Como o NGINX Plus pode ajudar?

NGINX Plus e NGINX são as melhores soluções de balanceamento de carga da categoria, usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites em todo o mundo confiam no NGINX Plus e no NGINX Open Source para disponibilizar seu conteúdo com rapidez, confiabilidade e segurança.

O NGINX Plus é um proxy reverso e balanceador de carga extremamente eficiente quando implantado à frente de servidores web e de aplicações, com módulos de tradução para vários tipos de servidor de aplicações, incluindo FastCGI e SCGI. O NGINX Plus combina diversas funções — incluindo serviço de conteúdo web, balanceamento de carga avançado, armazenamento em cache, gerenciamento e monitoramento e roteamento de solicitações — em uma única solução flexível e econômica para fornecer conteúdo estático e dinâmico de forma rápida e confiável, aumentando a satisfação dos clientes e a receita. É a plataforma completa de entrega de aplicações, essencial para os sites de alto desempenho atuais.