Gráfica: Evolución de uso de los servidores web en el panorama actual (Fuente w3tech)

Seleccionando un Servidor Web: Apache versus Nginx

Compartir

Descubre los principales puntos a tener en cuenta a la hora de seleccionar un servidor Web entre los dos más usados en el mundo TI: Apache versus Nginx.

A la hora de seleccionar un servidor para proveer de servicios web en nuestra infraestructura o la de nuestros clientes, muchas veces, nos encontramos ante la tesitura de seleccionar cual será el servidor que mayor desempeño nos proporcione, que menor carga administrativa genere y, que por supuesto, garantice un mayor uptime (tiempo de servicio) minimizando con ello los tiempos de caída o de indisposición de servicio.

Dentro de los servidores web disponibles en el mercado actualmente hay dos que destacan por estas características y por otras que iremos repasando más adelante. Se trata de Apache y Nginx, servidores web que han desbancado completamente a otros contendientes como Microsoft ISS, Litespeed… que les siguen muy por detrás.

En el presente artículo presentamos distintas valoraciones, repasaremos fortalezas y destacaremos algunas debilidades de cada uno de ellos para poder mojarnos y argumentar sobre nuestra elección. Ojo, nuestro punto de vista no es una verdad escrita en piedra y tras leer este artículo y otras fuentes, puede no que no estés de acuerdo con nosotros y decidas tomar una elección distinta. Nosotros sólo exponemos nuestra visión y algunos factores objetivos.

Gráfica: Evolución de uso de los servidores web en el panorama actual (Fuente w3tech)

Gráfica: Evolución de uso de los servidores web en el panorama actual (Fuente w3tech)

NOTA: Se pueden consultar los datos de uso de cada servidor web y su evolución desde el 1 de julio de 2019 hasta el día de hoy en la siguiente URL.

Antes de entrar a hablar de temas más técnicos, haremos foco en un punto a tener en cuenta: el navegador desde el que nos visitan nuestros “usuarios”. Esto lo podemos saber consultando la información de nuestros sistemas, que recopilan el tipo de navegador además de otros datos. Pero si no tenemos datos previos, podemos echar un ojo a las gráficas de uso de navegadores web en alguna de las webs destinadas a proveer información de este tipo.

Gráfica. Cuota de uso de navegadores web en mayo de 2022 (Fuente Wikipedia)

Gráfica. Cuota de uso de navegadores web en mayo de 2022 (Fuente Wikipedia)

 

Comparativa y Características:  Apache versus Nginx

Licenciamiento de Apache versus Nginx:

Un punto interesante a tener en cuenta cuando valoramos adquirir o instalar cualquier software es el tipo de licencia bajo el que se ha liberado (lanzado) el software en cuestión.

En este caso, Apache es un producto open-source (de código abierto) que fue liberado en 1996 bajo licencia Apache y tiene un largo recorrido con un gran apoyo de la comunidad, lo que nos debería garantizar un soporte extendido, una gran cantidad de testers y desarrolladores subsanando cualquier posible vulnerabilidad o error que se pueda detectar a lo largo del tiempo.

Por otro lado, Nginx es un proyecto que apareció en 2002, pero que hasta 2004 no fue lanzado de cara al público en general bajo licencia BSD y desde este momento, el apoyo de la comunidad ha ido creciendo. Así mismo, existe una versión comercial de Nginx ya que en 2019 fue adquirido por F5 Networks por lo que esta puede ser una buena opción para aquellos que prefieran tener un soporte profesional para escalar sus problemas.

En este caso, al menos desde nuestro punto de vista, creemos que Apache nos da mayor seguridad, ya que Apache cuenta con mayor recorrido y una comunidad que ha acompañado al proyecto por más de 25 años.

Además, aunque ambos cuentan con licenciamiento basado en proyectos de software libre, el proyecto de Apache está mucho mejor alineado con lo que la Free Software Fundation (FSF) diría que es una buena licencia, más que nada porque la licencia Apache v2.0 es compatible con la licencia GPLv3, no siendo compatible con la versión GPLv2 ya que hay ciertos términos y requisitos que no están permitidos en GPLv2.

Por otro lado, Nginx y su licencia BSD presentan cierta laxitud que puede presentar problemas de licenciamiento, entre otros en los proyectos

Logo de Apache

Logo de Apache

Rendimiento de Apache frente a Nginx:

Un punto de gran interés para todo administrador de sistemas y de servicios web es conocer el rendimiento que va a tener nuestro servidor y por eso vamos a valorar los dos puntos que lo conforman: la velocidad del servicio y el consumo de recursos.

En lo que respecta a la velocidad del servicio, Apache adolece de una mayor ralentización del servicio en la medida que crecen los usuarios, aunque esto no se empieza a notar hasta que empieza a haber miles de conexiones concurrentes, por el contrario, ambos servidores presentan una muy buena y muy semejante velocidad de servicio con volúmenes bajos de usuarios.

En el caso del uso de recursos, vuelve a pasar lo mismo. Cuando tenemos pocos usuarios, el consumo de ambas opciones es más o menos igual, pero conforme escala el número de conexiones se disparan también los recursos que necesita Apache. Con Nginx no sucede lo mismo, ya que escala de manera lineal y no exponencial como ocurre con Apache.

Por estos dos motivos, en esta sección, Nginx se llevaría el gato al agua.

Logo de Nginx

Logo de Nginx

Sencillez de configuración y administración: ¿Apache o Nginx?

Al comparar la sencillez de configuración inicial y administración, siempre diré que es una pregunta complicada de contestar, ya que algunos de nosotros ya tenemos una longeva relación con Apache, que en mi caso se remonta hasta el año 2000, con lo que tras 22 años de relación intermitente con este servidor web me va a ser muy difícil poder decir que es más complicado Apache que Nginx, ya que tras años y años trasteando con este servidor tengo grabados a fuego sus comandos, rutas, y configuraciones básicas.

Aun así, puedo decir, sin miedo a equivocarme, que para un técnico que tenga el primer contacto con ambos servidores, va a ser mucho más fácil adaptarse a Apache que a Nginx. Esto se debe, entre otras cosas a la estructura tan clara de ficheros de configuración.

Solo pondré un pero a Apache, y es que, tras trabajar con múltiples host en Nginx, éste es mucho más sencillo de administrar y su estructura de elementos separados facilita tremendamente la gestión, pero esto se da para casos en los que levantamos varios hostings en un mismo servidor, para todo lo demás, recomendaría ir a Apache.

Flexibilidad:

Antes de empezar a valorar, diremos que llamamos flexibilidad a la capacidad de adaptar estos servidores a nuestras necesidades de manera que estén lo más alineadas posible con lo que buscamos. Para ello, en esta sección hablaremos de su capacidad para ser instalado en distintas plataformas, la capacidad de integrarse con otras herramientas y la capacidad de tunning para adaptarla a distintos roles.

Ambos servidores pueden desplegarse en distintos sistemas operativos como GNU/Linux, MS/Windows, Docker, etc. Pero la interacción con algunas herramientas con las que Apache se integra todavía no están disponibles para Nginx y es aquí donde los años adicionales de existencia pueden dar la ventaja a Apache.

En esta área, hay que destacar la enorme cantidad de módulos disponibles para Apache, que podemos listar aquí y que le dan una ventaja notable a Apache frente a Nginx en lo que a flexibilidad se refiere.  

Seguridad de Apache frente a Nginx:

La seguridad es un tema muy serio hoy en día, ya que cada vez hay más servicios online, y cada vez hay más atacantes dispuestos a aprovechar cualquier vulnerabilidad. Por esta razón, es un punto que, a pesar de ser el último, para nosotros es el que más importancia toma.

El diseño de ambos servidores está muy orientado a la seguridad y la evolución a lo largo de los años es clara y continua, llegando hasta el presente con estructuras robustas, estables y seguras que nos garantizan (dentro de lo que es posible) una continuidad de las operaciones sin grandes sobresaltos, aunque por desgracia, nunca se podrá garantizar que instalando uno u otro se vaya a gozar de la invulnerabilidad de los sistemas. Además, siempre habrá que tener un ojo puesto en las distintas actualizaciones y parches que se publiquen para gozar de esa capa adicional que puedan darnos dichas actualizaciones.

Tanto Nginx como Apache publican periódicamente reportes de incidencias de seguridad, vulnerabilidades, etc. Y por supuesto, publican actualizaciones y parches con igual periodicidad, aunque quizá sea ligeramente superior Apache, más que nada por su numerosa comunidad.

En este sentido, tanto Apache como Nginx han hecho los deberes y por esta razón creemos que están más o menos a la par. No hay un claro vencedor en esta sección.

Conclusión… Apache o Nginx, ¿Con cuál me quedo?

Si hacemos un breve repaso de lo expuesto a lo largo de este pequeño artículo, podemos ver que en lo que respecta a licencias, Apache está mucho mejor visto por su licencia alineada con la GPLv3, mientras que la BSD tiene ciertos problemas por la laxitud de sus términos. En lo que respecta al rendimiento, Nginx muestra mejor desempeñopara grandes volúmenes de conexiones, mientras que en lo que respecta a la sencillez de configuración y administración y la flexibilidad sería mejor Apache. Por último, en lo que respecta a seguridad, ambos quedarían a la par.

En resumen, recomendaríamos usar Apache a menos que esperemos grandes volúmenes de visitas y no dispongamos de un gran volumen de recursos ya que el aprovechamiento que nos daría Nginx sería mucho mejor.

Por último, debemos decir que, a pesar de poder decantarnos por un tipo de servidor web, siempre debe prevalecer el criterio del lector, que puede tener mayor afinidad por uno u otro por muy diversas razones, como por ejemplo por conocer mejor el sistema o por tener una mejor afinidad con el proyecto.

Categorías:Cloud y sistemas

Otros posts que te pueden interesar

13 de noviembre de 2024
¡Tenemos nuevas distros en Servidores! En respuesta a las múltiples solicitudes de varios de nuestros partners, se ha habilitado
13 de noviembre de 2024
¡Ya es posible desplegar plantillas de diferentes softwares desde el asistente de despliegue de servidores! Estrenamos esta funcionalidad del
13 de noviembre de 2024
¡Integración con QNAP! Ya es posible crear copias sincronizadas entre dispositivos de almacenamiento local QNAP y nuestro servicio de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.

Precios competitivos para la pyme y mucho más margen para el partner

Disaster Recovery ha sido diseñado, implementado y puesto en producción teniendo en cuenta dos premisas: Debe tener un precio atractivo para la pyme a la vez que deja un buen margen de beneficio a la empresa de IT que lo comercializa y gestiona.

DR_buen_precio_y_mas_margen

De esta manera, Disaster Recovery pretende ser un producto diferencial que permita incrementar la seguridad de todo tipo de empresas de manera asequible e implicando, además, rentabilidad para el distribuidor que lo comercializa.

Protege la infraestructura de tus clientes

Disaster Recovery permite replicar cualquier suscripción de infraestructura (Escritorio Remoto y Servidores) en otra zona de disponibilidad creando un entorno de alta disponibilidad y blindando así el servicio.

Replica en pocos pasos no sólo los discos sino todos los elementos que forman parte de cada suscripción:

  • Servidores: Instancias, discos, reglas de firewall, redes, IPs…
  • Escritorio Remoto: Usuarios, Aplicaciones, Licencias, Personalización…
DR_blinda_la_infraestructura

Tratamos de hacer fácil lo difícil

Las herramientas de Disaster Recovery existentes necesitan de conocimientos avanzados para poder ser gestionadas, implicando, muchas veces, un expertise difícil de alcanzar.

 

Disaster Recovery de Jotelulu busca hacer fácil lo difícil y plantea un despliegue muy sencillo basado en una configuración de tres pasos:

Origin (Primary Site)
Determina la ubicación de origen de la suscripción sobre la que se va a establecer el servicio de Disaster Recovery.

Destino (Recovery Site)
Establece la ubicación de destino (zona de disponibilidad) en la que quieres que se despliegue el Recovery Site.

Características de la réplica
Establece los datos asociados al número de copias que se quieren guardar y la frecuencia con la que se va a llevar a cabo la réplica.