¿Cuál es la diferencia entre un servidor de aplicaciones y un servidor web?

A pesar del contraste que implica «servidor de aplicaciones frente a servidor web», en Internet ambos tipos de servidores suelen implementarse conjuntamente con un objetivo común: atender las solicitudes de contenido de un sitio web realizadas por los usuarios. No existen documentos normativos que definan las características de los servidores web y los servidores de aplicaciones, pero veamos cómo se entienden habitualmente estos términos.

La función fundamental de un servidor web es aceptar y atender las solicitudes de contenido estático de un sitio web por parte de los clientes (páginas HTML, archivos, imágenes, vídeos, etc.). El cliente es casi siempre un navegador o una aplicación móvil, y tanto la solicitud como la respuesta del servidor web adoptan la forma de un mensaje del Protocolo de transferencia de hipertexto (HTTP).

La función fundamental de un servidor de aplicaciones es proporcionar a sus clientes acceso a lo que comúnmente se denomina lógica de negocio, que genera contenido dinámico; es decir, se trata de código que transforma datos para proporcionar la funcionalidad especializada que ofrece una empresa, un servicio o una aplicación. Los clientes de un servidor de aplicaciones suelen ser a su vez aplicaciones, y pueden incluir servidores web y otros servidores de aplicaciones. La comunicación entre el servidor de aplicaciones y sus clientes puede realizarse mediante mensajes HTTP, pero no es un requisito, como sí lo es en la comunicación entre los servidores web y sus clientes. También se utilizan muchos otros protocolos, incluidas las variantes de CGI.

¿Cómo funcionan conjuntamente los servidores de aplicaciones y los servidores web?

En una implementación típica, un sitio web que ofrece contenido tanto estático como generado dinámicamente utiliza servidores web para el contenido estático y servidores de aplicaciones para generar contenido de forma dinámica. Delante de uno o varios servidores web y uno o varios servidores de aplicaciones web se sitúan un proxy inverso y un balanceador de carga, que dirigen el tráfico al servidor adecuado, primero en función del tipo de contenido solicitado y, después, según el algoritmo de balanceo de carga configurado. La mayoría de los programas de balanceo de carga también actúan como servidores proxy inversos, lo que simplifica la arquitectura de los servidores de aplicaciones web.

¿Por qué esta pregunta?

¿Por qué se plantea la duda de si algo es un servidor de aplicaciones o un servidor web? Se debe, en gran medida, a que el diseño y el uso de ambos tipos de servidores se han ido solapando cada vez más a medida que han aumentado las exigencias de los sitios web. Muchas aplicaciones populares funcionan tanto como servidores web como servidores de aplicaciones (por ejemplo, Apache HTTP Server, Express, Hapi y Koa).

Otro punto en común es que algunos servidores de aplicaciones web utilizan HTTP como protocolo de comunicación. Del mismo modo, algunos servidores web acaban pareciéndose a servidores de aplicaciones porque incorporan módulos y funciones compatibles de forma nativa con lenguajes populares como PHP, o porque actúan como proxy y traducen las solicitudes HTTP al protocolo que utiliza la aplicación (como FastCGI).

¿Cómo puede ayudar NGINX Plus?

NGINX Plus y NGINX son las mejores soluciones de balanceo de carga de su categoría, utilizadas por sitios web con mucho tráfico como Dropbox, Netflix y Zynga. Más de 350 millones de sitios web de todo el mundo confían en NGINX Plus y NGINX Open Source para ofrecer sus contenidos de forma rápida, fiable y segura.

NGINX Plus es un proxy inverso y equilibrador de carga extremadamente eficiente cuando se implementa delante de servidores web y de aplicaciones, con módulos de traducción para varios tipos de servidores de aplicaciones, incluidos FastCGI y SCGI. NGINX Plus combina múltiples funciones, entre ellas servicio web, equilibrio de carga avanzado, almacenamiento en caché, gestión y supervisión, y enrutamiento de solicitudes, todo ello en una solución flexible y rentable para entregar contenido estático y dinámico de forma rápida y fiable, lo que aumenta la satisfacción de los clientes y los ingresos. Es la plataforma integral de entrega de aplicaciones imprescindible para los sitios web actuales de alto rendimiento.