HomeWeb DevelopersWeb Servers: NGINX vs Apache vs Lighttpd

Web Servers: NGINX vs Apache vs Lighttpd

Web servers son en escencia servicios instalados en un sistema Linux (por excelencia) aunque también pueden ser windows, que se encargan de administrar todas las conexiones que se realizan a la web y proveer la información en el formato adecuado a los usuarios que las solicitan, basicamente, los lectores. En este momento, disponemos de tres servidores web que son los mas conocidos y utilizados, Apache, Lighttpd y NGINX (pronunciado Engine-X).    

Diferencias:

Apache es por lejos el mas utilizado, seguido de NGINX y Lighttpd, la diferencia entre Apache y los otros dos es que Apache trata de proveer la información de manera sincrónica, esto es, mantener una copia de cada solicitud realizada y proveerla acorde a cada pedido, para NGINX y Lighttpd esto se realiza de manera asincronica y por pedido, esto quiere decir que NGINX por ejemplo solo entrega lo que es solicitado, no prepara los recursos para entregar la información como lo hace Apache. En cierta medida, Apache utiliza un acercamiento algo antiguo a la información y en estos aspectos ambos NGINX y Lighttpd son superiores.

Será cierto que Apache es el mas lento?

Todo lo que has leido sobre NGINX y Lighttpd es en muchas medidas cierto, son mas rapidos que Apache, consumen menos recursos y tienden a sostener una cantidad mucho mayor de conexiones al mismo tiempo, pero ambos sufren de un problema importante, la falta de modulos. Apache provee cientos de modulos para poder configurar e instalar, los famosos «Apache Modules» que no solo se instalan sino que se pueden activar/desactivar de manera muy sencilla,  en linux tenemos comandos para esto llamados:  a2enmod y a2dismod, estos se encargan de activar/desactivar modulos ya instalados en Apache de manera instantanea. Los modulos nos permiten realizar funciones adicionales.

Modulos:

El argumento que se escucha para defender a NGINX y Lighttpd es que no se necesitan cientos de modulos para hacer las tareas mas importantes y que siempre es mejor tener 5 funciones cubiertas de manera mas eficiente y rapida que cientos de funciones innecesarias que hacen mas lento el proceso.  Si bien es cierto y también es cierto que ambos son mas rapidos, la implementación actual es algo mas delicada, puesto que la gran mayoria del software (tanto libre como de pago) que se encuentra en la web está prácticamente adaptado para Apache, en la mayoría de los casos deberás realizar modificaciones personales a los archivos para poder incluir NGINX o Lighttpd. Mas adelante veremos que tipo de software para hosting es apropiado, tanto de forma gratuita como de pago y que tipos de requerimientos poseen, ahi verán como la gran mayoría no poseen instalación por defecto para los servicios asíncronicos y que brindan todo el apoyo a Apache que por desgracia es el mas usado.

El Futuro: Apache 2.4

Las buenas noticias para los que desean seguir usando Apache pero que ansian una mejora de performance como la que ya tiene NGINX y Lighttpd es que la próxima versión de Apache, la 2.4 ya posee casi todas las mejoras inclidas en NGINX, no porque haya cambiado su modalidad sinó porque ha implementado optimizaciones que lo han llevado al nivel de NGINX, por el momento, se encuentra en fase de pruebas y no es posible instalar Apache 2.4 en cualquier servidor linux sin haber agregado a mano repositorios de desarrollo, algo que no aconsejo en ningun servidor web que necesite estabilidad. Solo el tiempo dirá si la nueva versión de Apache 2.4 podrá competir con NGINX y Lighttpd, por el momento, NGINX está primero en lo que a performance se refiere, seguido por Lighttpd y por último Apache, esta es la verdad. Si lo que estas pensando es armar una web con una cantidad masiva de visitas, deberás considerar seriamente utilizar NGINX (mi preferido) o bien emplear Apache en su variante «mpm-worker» que tiene un poco mas de optimizaciones. En nuestro proximo artículo veremos varias formas de configurar Apache (Apache-mod,  Apache-FastCGI) para poder optimizar su uso.

Alex Vojacek
Alex Vojacek
Fundador, System Arquitect y diseñador para TecnoGaming. Apasionado de la tecnología y los videojuegos. Fan de la naturaleza y la familia. Vive actualmente en Boquete, Panama.