¿Qué es Apache?

Apache es un software de servidor web gratuito y de código abierto muy adecuado para un conjunto diverso de tipos de ordenador y paquetes de software.
Las dos razones principales de su popularidad son su flexibilidad a la hora de configurarlo y su éxito a la hora de hacer posibles proyectos a gran escala.

logo apache

Visión general

El servidor HTTP Apache es uno de los dos servidores web más populares desde hace más de 25 años.
Actualmente, lo utiliza alrededor de un tercio de todos los servidores existentes, incluidos proyectos como eBay, PayPal y Facebook.
Esta popularidad le ha reportado importantes ventajas, como una documentación detallada y una comunidad activa.

Uso para WordPress

Antes de adquirir un WordPress necesitas elegir un servidor web en el que alojarlo, y Apache es una gran opción.
Instalar y configurar WordPress en Apache es relativamente fácil, y hay muchas instrucciones que puedes seguir en Internet.
Sin embargo, si utilizas alojamiento WP gestionado, tu proveedor de alojamiento se encargará de la gestión del servidor.

Características principales

Estas son las principales ventajas de Apache:

  • Accesible: Apache es gratuito y de código abierto, lo que significa que desarrolladores de todo el mundo trabajan para añadir funciones útiles y extensiones adaptadas a necesidades muy específicas.
    Ni que decir tiene que el producto final sólo se beneficia de estas adiciones.
  • Flexible en cuanto a la configuración: Apache utiliza unos pocos archivos de configuración para controlar el servidor, lo que significa que es fácil configurarlo para que sirva a fines muy concretos y bien definidos.
  • Funcional: Gracias a su estructura modular dinámica, Apache permite a los usuarios ampliar fácilmente la funcionalidad descargando módulos.
    Esto resuelve muchos problemas importantes en materia de seguridad, edición de URL, almacenamiento en caché, etc.
    Existe la opción de desactivar los módulos no utilizados para acelerar el servidor web.
    Los módulos híbridos permiten a Apache servir con éxito tanto páginas web estáticas como dinámicas.
  • Versátil: Apache funciona de forma similar en diversas plataformas, desde Windows a Linux.
  • Compatible: Como Apache funciona sobre la base de lenguajes de programación orientados a la web(PHP, Python, Ruby, etc.), es compatible con la más amplia gama de bases de datos y software de servidor. Un sinfín de herramientas y aplicaciones ya vienen con su respectivo módulo PHP para ser lanzadas a través de Apache. El servidor web es compatible con FastCGI y CGI, lo que permite utilizar software escrito en Java, C, C++, etc.
  • Escalable: El servidor web es adecuado para proyectos de cualquier tamaño, desde un sitio web estático de una página hasta un sitio dinámico de varias páginas con decenas de miles de visitantes diarios.
  • Equipado con un gran soporte: Cualquier problema que encuentres con Apache probablemente lo haya encontrado y resuelto otro usuario.
    Existe una vibrante comunidad y una documentación exhaustiva para ayudarte en el camino.

Pero, por supuesto, también hay inconvenientes:

  • Baja productividad: La velocidad de procesamiento de las solicitudes es algo inferior a la de los competidores.
    La flexibilidad y multifuncionalidad del servidor dificultan a veces su productividad.
  • Vulnerabilidad que proviene de la complejidad de las configuraciones: Cuanto mayor sea el número de módulos, más difícil será configurar el servidor.
    Esto significa que también aumenta la probabilidad de pasar por alto una amenaza importante para la seguridad.
  • Demasiados módulos «extra»: La mayoría de los usuarios no aprovechan la mayor parte de las oportunidades que ofrece Apache, por lo que suelen dedicar tiempo a desactivar los módulos «extra».

Apache vs Nginx

Los dos servidores web más populares, que gestionan más del 50% de Internet, son similares en muchos aspectos.
La diferencia más importante entre Apache y Nginx es la forma en que funcionan «bajo el capó».

Apache Nginx
Conexiones gestionadas Un montón de módulos de multiprocesamiento (MPM) dictan cómo se gestionan las peticiones de los clientes.
Esto hace que el consumo de recursos de Apache sea bastante elevado.
Utiliza un algoritmo de gestión de conexiones asíncrono, no bloqueante y basado en eventos.
Esto hace que Nginx pueda escalar incluso con recursos muy limitados.
Páginas web dinámicas Puede manejarlas. No puede manejarlas de forma nativa.
Ajustes de configuración Distribuido: Puede permitir el acceso a determinados directorios a usuarios que no sean administradores. Centralizada: No permite el acceso selecto.
Módulos Cargables dinámicamente Deben seleccionarse y compilarse en el núcleo

 

Hay una gran cita de Chris Lea que refleja bastante bien estas diferencias: «Apache es como Microsoft Word, tiene un millón de opciones pero sólo necesitas seis. Nginx hace esas seis cosas, y hace cinco de ellas 50 veces más rápido que Apache».

En última instancia, la elección dependerá de las necesidades de tu proyecto en particular, pero si sabes configurarlo bien, Nginx ofrecerá un mejor rendimiento.
Incluso puedes optar por utilizar ambos servidores web a la vez, dejando las páginas estáticas a Nginx y redirigiendo el procesamiento de los scripts a Apache.