Servidores NGINX vs Apache vs LitleSpeed vs Apache + Nginx vs Nginx + Varnish

Hoy te voy a enseñar que son los servidores web y que tipo de servidor web escoger. Apache o LitleSpeed o Nginx. Cuando construyes una página web necesitas hacer uso de un alojamiento web. Este alojamiento web no deja de ser un espacio en un servidor físico en un centro de datos. No todos los servidores son iguales ni todos rinden a la misma capacidad.

Servidores web Apache

servidores web apache

Apache es software que permite a servidores web funcionar desde hace muchos años. Es de código libre multiplataforma que corre bajo el protocolo HTTP/1.1 (Ver la diferencia entre HTTP/1.X y HTTP/2). Se empezó a desarrollar en 1995 y hasta día de hoy es el servidor web más usado en el mundo. ¿Por qué es el más usado? Que sea el más usado no quiere decir que sea el mejor, lo es porque fue uno de los primeros en dar este servicio. De hecho en 2005 llegó a su auge con más de un 70% de la cuota de mercado, aunque si bien es cierto que está perdiendo mucha cuota a favor de otro tipo de servidores que te enseñaré más adelante.

Es un proyecto LAMP (Linux, Apache, MySQL, PHP), es decir, anteriormente había que instalar las dependencias una por una. Ahora con este tipo de servidor aglomera todos los servicios y con una instalación única contamos con un servidor web, gestión de base de datos y ejecución de lenguajes dinámicos como PHP. Poco a poco añade más lenguajes como Ruby.

¿Por qué está perdiendo cuota de mercado entonces si tiene el gran porcentaje de cuota de mercado? Muy fácil, es debido a que su capacidad de procesamiento de archivos es muy lenta en comparación con otro tipo de servidores como Nginx (este nació en 2004). Si la gente lo sigue usando es por su archivo .htaccess que permite configurar el servidor de una forma sencilla por ejemplo para usar WordPress, cosa que es incompatible con Nginx y es usada por un gran porcentajes de páginas webs.

Servidor web Nginx

servidores web nginx logo

Nginx nace en Octubre de 2004, es un servidor web relativamente joven puesto que Apache le saca 10 años de diferencia. Es normal esa disparidad de porcentaje de cuotas de mercado. Es un servidor web también gratuito (Aunque tiene su versión premium Nginx+), open source, sirve los elementos estáticos mucho más rápido que Apache y puede ejecutar miles de peticiones en muy pocos hilos o procesos, cosa que Apache no podría hacer.

Además Nginx puede actuar como servidor proxy inverso, es decir, puede actuar como servidor una capa de “protección” de la mano del servidor original. Es tan robusto y eficiente que servicios como WordPress.com pasó sus servidores a Nginx al igual que lo hizo SourceForge. Y aún más, puede trabajar como balanceador de carga. Debido a su rendimiento de multitud de peticiones, puede balancear la carga entre diferentes servidores.

Normalmente se suele trabajar en una fórmula Nginx + Apache (Debido a que Nginx carece de procesor PHP nativo). Este primero actúa para brindar archivos estáticos y dejar a Apache como conejillo de indias para que procese las peticiones de código dinámico como PHP. También hay que comentar que Nginx puede trabajar con un interprete de PHP como es PHP-FPM.

Usar Nginx como sistema servidor web próxy VS Varnish

Antes de explicar nada, hay que saber que Varnish es un servidor web proxy inverso que actúa como caché y se instala por delante del servidor. Este almacena una copia de los archivos solicitados. Por otro lado, Nginx funciona como proxy inverso para servidor contenido estático.

Normalmente Nginx guarda los archivos cacheados en una ruta temporal en disco y Varnish guarda los archivos cacheados en la memoria RAM por lo que lo hace más accesible. Si tu web apenas tiene contenido dinámico, Varnish pierde sentido y sería mejor usar Nginx como servidor proxy para servir los contenido estáticos.

Si por alguna razón no quieres o no puedes usar Varnish, existe una solución llamada Memcached que guarda los archivos en caché en la memoria RAM. Se puede realizar esto gracias al modulo para Memcached de Nginx.

Servidor web Nginx + PHP-FPM 

servidores web nginx mas varnish mas php fpm

Siguiendo con la anterior, comentaba que existe una fórmula que es Nginx + Apache que funciona bien pero funciona aún mejor Nginx + PHP-FPMPHP-FPM es una librería o código que interpreta y ejecuta PHP muy, pero que muy bien. Significa “FastCGI Process Manager“, de ahí sus siglas. Nginx por si solo puede procesar a muy alto rendimiento archivos estáticos, pero no dinámicos. Por eso Nginx empezó a trabajar con PHP-FPM.

La principal ventaja que tiene Apache frente a Nginx es MOD_PHP que es una librería que se instala por defecto, y que se puede configurar muy fácil, en las dependencias de Apache de forma cómoda ya que va incluido en el paquete. Lo cierto es que MOD_PHP consume muchísimos recursos, abre muchos hilos o procesos para resolver una petición. PHP-FPM es una alternativa o la evolución a FastCGI (FastCGI a su vez es una evolución de CGI, que es el protocolo que permite ejecutar un proceso en un servidor y retornar la información obtenida y no ejecutarlo en el navegador del cliente como pasaba hacía muchos años. Puedes leer más aquí: https://es.wikipedia.org/wiki/Interfaz_de_entrada_com%C3%BAn).

Los tiempos de respuesta que surgen con esa “fusión” son tremendamente más bajos que que si se usara Apache o la fórmula Apache + Nginx. Lo bueno de PHP-FPM es que permite configurarse mucho mejor que la mayoría de otros intérpretes. La forma con la que trabaja PHP-FPM con Nginx es mediante TCP Sockets a través del puerto 9000 (IP:9000) y aunque no parezca la forma más eficiente, siempre podremos mejor la conexión usando UNIX Domain Sockets en vez de TCP Sockets que es la forma con la que se trabaja.

La fórmula definitiva: Nginx + PHP-FPM + Varnish

servidores web nginx mas varnish mas php fpm mas varnish

La formula perfecta de optimización ser un servidor web es la de Nginx + PHP-FPM + Varnish. Suma la potencia que tiene Nginx de procesar archivos estáticos como servidor web proxy + la capacidad de ejecución de PHP-FPM + el sistema de cacheado de Varnish que se pone enfrente de Nginx para dar respuesta a elementos cacheados. ¡Esto es la caña!. Y ya, si tienes una base de datos optimizada te colocas en el TOP 1 de carga de una web.

Además estás fomentando a la mejora del Crawl Budget y el Time To First Byte

Servidores web LiteSpeed

servidores web litespeed logo

Otro de los servidores web más jóvenes en aparecer y más robustos que existen. Esta vez se trata de un software o código privado de pago desarrollado por una entidad privada LiteSpeed Technologies. Nació en 2003 y ya en 2008 se colocó como el decimosexto servidor web más usado en el mundo. En 2016 pasó de una cuota inferior al 1% al 3,29% pasando así a ser el uno de los seis (6) servidores web más usados en el mundo.

Se estima que LiteSpeed corre bajo el, aproximadamente, 10% de webs que corren bajo el protocolo HTTP/2 (la nueva forma de transmitir contenido entre cliente y servidor). ¿Qué hace que LiteSpeed tenga cuota de mercado a pesar de su abusivo precio? (Hasta casi 100 dólares/mes por correr en servidores decentemente buenos). La respuesta es que tiene las mismas funcionalidades de Apache, corre muchísimo más rápido pareciéndose en ese sentido a Nginx ya que es capaz de procesar grandes peticiones en tiempos record.

Servidores web Nginx VS servidor web Apache

Dejando a LiteSpeed de lado por el precio que tiene, hacemos la comparación entre los dos servidores gratuitos. Los tiempos de respuesta o procesamiento es casi un 150% más rápida en Nginx que en Apache e incluso el consumo de memoria RAM es sumamente menor que la que usa Apache. Depende sobre todo el tipo de web que tengas, si tienes un proyecto que no requiere altas peticiones o procesamiento de datos, quieres comodidad y facilidad de uso, Apache es tu servidor de elección.

Si por el contrario necesitas un gran procesamiento de datos, eficiencia, balanceamiento de carga, etc deberás usar Nginx. Si quieres usar tu web en WordPress deberás modificar los parámetros necesarios en la configuración de Nginx o PHP-FPM para que funcione. Ngix no trabaja con .htaccess por defecto. Puede ser que tu proveedor de alojamiento web haya configurado ya el servidor para que puedas instalar WordPress (Por ejemplo, los servidores de Raiola Networks corren bajo Nginx pero están configurados para poder instalar WordPress).

Conclusiones para elegir entre los servidores web

Esta decisión está reservada para personas que tengan conocimientos sobre optimización de páginas webs y que quieran llevar la carga de su web a tiempos muy bajos. También se puede dar la posibilidad de que tengas una web que tiene mucho tráfico pero no sepas nada sobre el tema. En ese caso debes ponerte en contacto con expertos en optimización en servidores web como los técnicos de Raiola Networks que tienen un soporte técnico sensacional.

Ponte en contacto con ellos, te ayudarán a optimizar WordPress o tus servidores web. Llámalos, están disponibles las 24 horas del día los 365 días del año. Puedes escribirles por teléfono, chat, email, ticket…