Servidor Apache: una guía completa para principiantes

Existen varios tipos de servidores web en el mercado y entre ellos se encuentra Apache, uno de los servidores más antiguos

Aunque en los últimos años han surgido nuevas alternativas más modernas y eficaces, Apache sigue siendo un servidor de referencia.

Estadísticamente, Apache cubre el 33,7% de los 1000 sitios principales, justo por detrás de Nginx con su 38,8%

Se utiliza ampliamente en los sistemas operativos tipo Unix, y puede utilizarse en casi todas las plataformas como Windows, OS X, OS/2, etc

En esta guía detallada, veremos:

  • Qué es exactamente Apache; Su importancia
  • Su importancia ;
  • Cómo funciona;
  • Sus ventajas y desventajas;
  • En qué se diferencia de otros servidores web del mercado;
  • Su instalación y configuración;
  • etc.

¡Empecemos!

Table des matières

Capítulo 1: ¿Qué es el servidor Apache y cómo funciona?

1.¿Qué es Apache y qué hace?

El servidor Apache es uno de los servidores web gratuitos más potentes del mercado. Fue creado en 1995 por Rob McCool, entonces empleado de la NCSA

Según las estadísticas de W3techs, es utilizado por el 31, 5% de todos los sitios web por los que se conoce el servidor

Serveur Apache Guide Complet (2)

Esta es la tecnología principal delFundación de Software Apachees la tecnología central de Internet, responsable de más de una docena de proyectos de :

  • Tecnologías de transmisión por Internet
  • Procesamiento de datos;
  • Y la ejecución de aplicaciones distribuidas

¿Por qué Apache? La palabra, apache, fue tomada del nombre de la tribu nativa americana » Apache la palabra, apache, fue tomada del nombre de la tribu nativa americana «Apache», famosa por sus habilidades en la guerra y la estrategia.

Homme de la Tribu americaine Apache

Fuente: Guru99

Inicialmente, se trataba de un grupo de parches para el servidor web HTTPd de la NCSA, que el autor sustituyó por completo reescribiendo todo el código original.

En resumen, Apache es un servidor web HTTP de código abierto desarrollado y mantenido por una comunidad de usuarios en torno a laApache Software Foundation. Se utiliza para responder a las solicitudes de contenido de los clientes web (navegadores).

 Client Serveur Bae de donnees

Fuente: Informationq

Actualmente y desde 1996, es el servidor web gratuito más utilizado en el mundo por su seguridad y estabilidad.

Además, la mayoría de las empresas de alojamiento web trabajan con servidores Apache.

1.1.1. ¿Qué es un servidor web?

Un servidor web es un programa que procesa y devuelve información cuando un usuario realiza una solicitud

Requete et Reponse serveur web

Fuente: nanduribalajee

En otras palabras, aloja sitios web en uno o varios servidores y muestra el contenido (sitios web) del servidor a través de un software cliente (un navegador).

La mayoría de los servidores son compatibles con Linux. Los servidores web Linux más importantes son Apache y NGINX.

1.1.2. ¿Cuál es el mayor reto de un servidor web?

Los archivos que procesan los servidores están escritos en diferentes idiomas

  • Python
  • Java
  • PHP
  • Etc.

Cuando un usuario quiere cargar una página de un sitio web, su navegador envía una petición al servidor y Apache devuelve una respuesta con todos los archivos solicitados:

  • Texto
  • Imágenes;
  • Vídeos
  • Etc.

En definitiva, el servidor proporciona las páginas solicitadas por los distintos usuarios y garantiza una comunicación correcta y segura. El servidor y el cliente se comunican a través del protocolo HTTP

1.¿Cómo funciona un servidor Apache?

La principal funcionalidad de este servicio web es proporcionar a los usuarios todos los archivos necesarios para ver la web. Las solicitudes de los usuarios suelen realizarse a través de un navegador:

  • Cromo
  • Firefox
  • Safari;
  • Etc.

Apache garantiza que la comunicación entre el servidor web y el cliente web (usuario que solicita la información) sea fluida y coherente.

Así, cuando un usuario realiza una petición HTTP a través del navegador para entrar en una página web o URL específica, Apache devuelve la información solicitada a través del protocolo HTTP.

Por ejemplo, cuando un usuario escribe twaino.com en su navegador, esta petición llegará a nuestro servidor Apache, que proporcionará los textos, imágenes, estilos… a través del protocolo HTTP.

Fonctionnement d un serveur apache

Fuente: Temok

Además, Apache le permite aplicar un alto nivel de personalización gracias a su sistema modular.

De hecho, el servidor tiene un basado en módulos que le permite habilitar y deshabilitar varias características como

  • módulos de seguridad como mod_security
  • módulos de caché como Varnish;
  • o módulos de personalización de cabeceras como mod_headers.

Estos módulos de Apache deben utilizarse con precaución, ya que pueden afectar a la seguridad y funcionalidad del servidor web. (Más adelante se ofrecen más detalles sobre los módulos de Apache).

Apache también le permite ajustar la configuración PHP de su alojamiento de forma personalizada a través del archivo .htaccess.

1.3. Algunas características de Apache

Se trata de un servidor web con soporte para HTTP/1.1 y posteriormente HTTP/2.0 de acuerdo con el RFC 7540

caractéristiques de Apache (1)

Fue uno de los primeros servidores en soportar VirtualHost (también conocido como sitio virtual) para dominios e IPs siguiendo el estándar normal RFC 2616

Caractéristiques de Apache (1)

Esto permite alojar varios dominios en el mismo servidor con la misma IP, algo que hoy parece básico pero que en los años 90 era una revolución.

Las principales características de Apache son las siguientes:

  • Es gratuito y de código abierto;
  • Fácil de instalar y configurar;
  • Altamente extensible y adaptable con módulos;
  • Funciones incorporadas para la autenticación y validación de usuarios;
  • Soporte para lenguajes como Perl, PHP y Python.

Capítulo 2: ¿Cuáles son las ventajas y desventajas de Apache?

2.1. Ventajas de Apache

Algunas de las ventajas que podemos encontrar en un servidor Apache son las siguientes

  • Soporte: Es uno de los servidores más utilizados desde hace más de dos décadas, por lo que detrás hay una comunidad muy amplia acompañada de una extensa documentación.
  • Multiplataforma: Funciona tanto en Microsoft Windows como en Unix/Linux y Mac, lo que lo convierte en un servicio excelente tanto para un servidor como para un entorno de desarrollo en cualquier estación de trabajo.
  • Características: Contiene un gran número de módulos oficiales y de terceros que le permiten ampliar la funcionalidad del servidor.
  • Simplicidad: Es uno de los servidores más fáciles de instalar y configurar, especialmente en las distribuciones de Linux donde forma parte de los repositorios de cada distribución. En el caso de Windows, se puede encontrar empaquetado con el servidor MySQL y PHP en un único instalador que facilita mucho la instalación.
  • Seguridad: Apache lleva incorporadas funciones para hacer seguro el software con módulos de autorización y autentificación y funciones de control de acceso, así como soporte para la encriptación con certificados SSL/TLS.
  • Cuenta con una gran comunidad de desarrolladores de todo el mundo, que ayudan a mejorar el software, ya que el código fuente original se puede consultar libremente;
  • Estructura basada en módulos;
  • Es de código abierto y gratuito;
  • Alto nivel de seguridad gracias a las constantes actualizaciones;
  • Personalización mediante .htaccess independiente en cada alojamiento;
  • Compatible con los principales CMS, tiendas online y plataformas de e-learning;
  • Es uno de los servidores web más antiguos del mercado, por lo que es súper fiable;
  • Le permite activar y desactivar funciones;
  • Fácil de usar para los principiantes.

2.2 Desventajas de Apache

Las dos desventajas de Apache son

  • El rendimiento puede verse afectado en páginas de alto tráfico, especialmente después de 10.000 conexiones;
  • Si los módulos no se utilizan correctamente, se pueden crear agujeros de seguridad.

La única desventaja notable es el bajo rendimiento en comparación con otras alternativas del mercado que son más rápidas y capaces de manejar mucho más tráfico con los mismos recursos.

Capítulo 3: Diferencias entre Apache y otros servidores web importantes

3.1. Apache frente a Nginx

Aunque NGINX es relativamente joven (nació en 2004), se ha hecho popular muy rápidamente por las ventajas que ofrece en el manejo de un alto tráfico de más de 10.000 conexiones a la vez.

Fuente: Apache Vs NGINX – ¿Cuál es el mejor servidor web para usted?

Puede definirse como una aplicación para servidores web. Fue diseñado principalmente para resolver el problema que tenían algunos servidores como Apache: Los propietarios de sitios con mucho tráfico estaban teniendo problemas de rendimiento.

NGINX permite que todas las peticiones a un sitio web se realicen en un único proceso y proporciona una mejor escalabilidad.

Por ello, es utilizado por marcas internacionales como Netflix, Airbnb, Pinterest o Wikipedia

En resumen, para sitios web con mucho tráfico, NGINX es lo que necesita y para sitios con menos visitas, Apache es lo ideal.

Para proporcionar un servicio web de alto rendimiento en términos de conexión, algunos servidores tienen una configuración de Apache y Nginx ejecutándose en paralelo.

3.1.1. Las diferencias entre Nginx y Apache

El servidor estadounidense Apache y el ruso Ngnix han estado luchando y ganando terreno en el mundo del alojamiento web. Son dos de los recursos más utilizados para ejecutar miles de sitios web en servidores locales.

Y aunque ambos servidores cumplen el mismo propósito de mantener el mundo conectado, merece la pena repasar cuáles son sus diferencias más importantes y aquí aprenderá más sobre ellas.

3.1.1.1 Tienen una estructura y un alcance diferentes

El servidor web Apache tiene una estructura de software sencilla, es de código abierto y procesa las peticiones de los usuarios a través de HTTP o HTTPS de una en una.

Por otro lado, Ngnix es más robusto, de código abierto y adecuado para todo tipo de sitios y tráfico web, ya que puede manejar un gran número de conexiones paralelas del proceso de trabajo.

3.1.1.2. Utilidad de Apache para el alojamiento compartido

Una característica de Apache, a diferencia de Nginx, es que el cliente puede elegir la configuración de su sitio web en el servidor sin afectar a los demás, ni cambiar la disposición general del servidor en el alojamiento compartido.

La función anterior es posible a partir de los archivos .htaccess, con los que se puede configurar cada directorio de la página web de forma independiente.

Aunque esto es una gran ventaja, esta flexibilidad en la configuración puede afectar al rendimiento del servidor cuando recibe un gran número de peticiones.

3.1.1.3. Compatibilidad de los dos servidores

Apache es altamente compatible con Linux, Windows y los CMS más utilizados para crear y gestionar sitios web como WordPress y Joomla.

Por otro lado, Nginx todavía no consigue una sincronización ideal con Windows, pero también es compatible con los gestores de contenidos más populares y con el lenguaje de programación Python.

3.1.1.4. Apache y Nginx facilitan la relación web-usuario

Los servidores web han llegado hasta nosotros para facilitar el intercambio de información

Si lo vemos desde un punto de vista más específico, permiten que las páginas alcancen sus objetivos manteniendo una velocidad de carga que permita al usuario obtener rápidamente lo que busca.

No hay duda de la utilidad de los servidores web, Apache y Nginx son valiosos

3.1.1.5. Otras diferencias
  1. El uso de la CPU y la memoria es consistente en Nginx incluso bajo cargas pesadas en comparación con Apache.
  2. Apache utiliza métodos convencionales basados en archivos para manejar el contenido estático y el contenido dinámico mediante la integración del renderizador de idiomas, mientras que Nginx no tiene la capacidad de renderizar el contenido dinámico de forma nativa.
  3. Apache permite una configuración adicional por directorio mediante la evaluación e interpretación de directivas en archivos ocultos llamados .htaccess, mientras que Nginx no permite una configuración adicional por directorio mediante la evaluación e interpretación de directivas.
  4. Apache interpreta .htaccess mientras que Nginx no interpreta .htaccess
  5. Las solicitudes son servidas más rápidamente por Nginx que por Apache.
  6. El nivel de seguridad es alto en Nginx en comparación con Apache, ya que Nginx no permite que el acceso a la configuración a nivel de directorio se distribuya a un usuario individual.
  7. Apache fue diseñado como servidor web, mientras que Nginx fue diseñado como servidor web y como servidor proxy.
  8. En Apache, los módulos se cargan y descargan dinámicamente, pero en Nginx, los módulos no se cargan dinámicamente.
  9. En Nginx, los módulos se seleccionan y luego se compilan en el software principal, mientras que en Apache esto se hace de forma dinámica.

Ahora que las diferencias están claras, le toca a usted decidir cuál es la más adecuada para el tipo de proyecto que quiere montar.

3.2. Apache contra Tomcat

Tomcat (Apache tomcat) es un subproyecto de la Fundación Apache y es un proyecto al mismo nivel que el servidor Apache (es decir, httpd)

Apache Tomcat

Fuente: Home-theater-designers

Tomcat está pensado exclusivamente para aplicaciones Java.

En cuanto a las similitudes entre ambos, tenemos :

  • Son desarrollados por la organización Apache;
  • Tienen la función de servicio HTTP;
  • Son de código abierto y gratuitos.

En términos de distinción, tenemos

1. Tomcat es especial porque también es un contenedor web Java y puede manejar JSPs, mientras que Apache normalmente viene con PHP y no puede manejar JSPs.

2. Apache sólo admite páginas web estáticas y necesita Tomcat para manejar páginas web dinámicas como Jsp. Tomcat también puede utilizarse para páginas estáticas pero en algunos casos es menos eficiente que Apache.

3. No se puede configurar de forma tan sencilla como Apache.

4. Integración de Apache y Tomcat:

  • – Si el cliente solicita una página estática, sólo el servidor Apache debe responder a la solicitud;
  • – Si el cliente solicita una página dinámica, el servidor Tomcat responde a la solicitud.

5. Apache y Tomcat son independientes y pueden integrarse en el mismo servidor.

6. Apache está implementado en el lenguaje C y soporta varias características y módulos para ampliar la funcionalidad básica. Tomcat está escrito en Java y es más adecuado para Servlet y JSP.

7. Apache es un servidor web (análisis estático, como HTML), tomcat es un servidor de aplicaciones Java (análisis dinámico, como JSP).

8. Tomcat no es más que un contenedor de servlets, que puede considerarse como una extensión de apache, pero que puede funcionar independientemente de éste.

9. Apache es un servidor ordinario, que sólo admite páginas web HTML, es decir, páginas web normales. Tomcat, por otro lado, es un contenedor de jsp/servlet, y también soporta HTML, JSP, ASP, PHP, CGI, etc.

10. Apache se centra en el servidor HTTP y Tomcat en el motor de servlets

11. A diferencia de Tomcat, Apache puede funcionar durante un año sin reiniciarse, y la estabilidad es muy buena.

3.3. Apache frente a LiteSpeed

Muchas soluciones de servidor modernas utilizan una tecnología existente como base sobre la que construir. Este es exactamente el caso de LiteSpeed.

LiteSpeed

ElServidor Web LiteSpeed (LSWS) se lanzó por primera vez en 2003 y se comercializó como un sustituto de Apache

Tiene la capacidad de leer los archivos de configuración de Apache, ejecutar los mismos comandos e integrarse completamente con todos los paneles de control como cPanel, Plesk y DirectAdmin.

Las principales mejoras fueron en el rendimiento y la escalabilidad.

Aunque LiteSpeed pretendía sustituir a Apache, no utiliza la misma base de código. De hecho, su arquitectura basada en eventos hace que la solución sea mucho más similar a Nginx

El software utiliza mecanismos de predicción para gestionar los picos de tráfico entrante y aligerar la carga del servidor.

Ahora es el momento de comparar LiteSpeed vs Apache y averiguar cuál es mejor:

  1. Popularidad – LiteSpeed vs Apache – Ganador: Apache

Sólo podía haber un ganador para este factor. Después de todo, Apache ya estaba conquistando el mercado. Cuando llegó LiteSpeed, su competidor ya alimentaba más del 50% de los sitios web.

De hecho, el porcentaje varía en función de la fuente de terceros que se consulte.

Según el informe de Netcraft de abril de 2020, Apache ya ha perdido el primer puesto en favor de Nginx, y ahora sólo tiene el 25% de la cuota de mercado

Por otro lado, el gigante de las encuestas web W3Techs cuenta una historia diferente. Su reciente informe sobre las estadísticas de uso muestra que Apache sigue siendo el rey, gobernando el 39% de Internet. Nginx es el segundo con el 31,9% y LiteSpeed ocupa el quinto lugar, responsable del 6,4% de los sitios en línea.

Por lo tanto, está claro que el ganador aquí es Apache.

  1. Rendimiento (contenido estático) – LiteSpeed vs Apache – Ganador : LiteSpeed

Debido a su arquitectura asíncrona, LiteSpeed es mucho más flexible con un mayor tráfico y conexiones concurrentes

Utiliza una metodología de almacenamiento en caché inteligente en la que el sistema almacena en caché los archivos comprimidos en lugar de crear una nueva solicitud cada vez que el usuario intenta verlos.

De este modo, LSWS es capaz de aumentar el rendimiento del servidor PHP en un 50%, haciéndolo finalmente hasta seis veces más rápido que Apache para el contenido estático.

Hay otra ventaja: LiteSpeed hace maravillas a la hora de comprimir las páginas. De este modo, cada nueva solicitud no sólo se sirve más rápido, sino que también utiliza menos memoria RAM.

Por lo tanto, LiteSpeed hace honor a su nombre.

Fuente: 8 tipos de servicios de alojamiento web explicados + infografía (sitesaga.com)
  1. Rendimiento (contenido dinámico) – LiteSpeed vs Apache: Igualdad

La mayoría de los sitios web actuales son dinámicos. Utilizan scripts del lado del servidor, que determinan la forma en que el servidor maneja las solicitudes de los diferentes usuarios.

Los sistemas de gestión de contenidos (CMS) son herramientas utilizadas a menudo para crear contenidos dinámicos: WordPress, Magento, Joomla, Drupal… es probable que su sitio web utilice una solución CMS

Sin embargo, no hay un claro ganador cuando se pone a prueba el rendimiento de LiteSpeed frente a Apache.

Puede preconfigurarlo fácilmente con módulos como FastCGI y PHP-FPM. De esta manera puede manejar cargas más altas y acelerar sus páginas en un entorno PHP multiusuario.

El LSWS es igual de bueno, y los puntos de referencia han confirmado esta noción. Apache ofrecía una velocidad bruta ligeramente superior, pero la compresión avanzada de páginas de LiteSpeed le daba una ligera ventaja para los sitios web más grandes.

  1. Soporte del sistema operativo – LiteSpeed vs Apache – Ganador: Apache

El sistema operativo es otro elemento crucial en la configuración de su sitio web. Los servidores Linux siguen siendo la solución dominante en el campo del alojamiento web. Por lo tanto, los sistemas operativos tipo Unix son una opción natural

En este sentido, no habría mucha diferencia en el servidor web que utilice.

Apache es compatible con todas las versiones e instancias del sistema operativo Linux

  • Fedora ;
  • Ubuntu ;
  • RedHat
  • Etc

Y como LiteSpeed utiliza Apache como base… bueno, puede atar cabos.

Para los usuarios de Windows, las cosas cambian.

Mientras que Apache está totalmente optimizado para las instancias de Windows, LiteSpeed no es compatible con el sistema operativo. Según los desarrolladores, los sistemas Windows son bastante diferentes de las soluciones tipo Unix y requieren muchos reajustes en la configuración existente.

Aquí el apache gana el duelo.

  1. Seguridad – LiteSpeed vs Apache – Ganador : LiteSpeed

el aspecto de la seguridad nunca debe pasarse por alto. Los informes sobre ciberdelincuencia muestran un asombroso aumento del 600% en los ataques en línea desde 2017, lo que ha provocado unas pérdidas estimadas en 500.000 millones de dólares para la economía mundial.

Apache viene con todo lo necesario para asegurar un servidor web. Puede aplicar reglas de seguridad, bloquear el acceso de los usuarios o eliminar los módulos innecesarios

Además, Apache intenta seguir los últimos estándares de seguridad de los servidores, publicando con frecuencia parches de vulnerabilidad y optimizaciones de seguridad.

Sin embargo, necesita algunos conocimientos de administración y reconfiguración. LiteSpeed ofrece una protección de alto nivel para el sitio web desde el principio

Es compatible con las reglas mod_security de Apache, por lo que puede esperar las mismas defensas fuertes del servidor.

Sin embargo, hay algunas cosas en las que LiteSpeed destaca, y una de ellas es sin duda la protección contra la fuerza bruta y otros ataques DDoS

En una prueba simulada, el LSWS manejó sin problemas el mismo número de peticiones al servidor que antes hacían que Apache se bloqueara.

Cada pequeño detalle cuenta, y LiteSpeed tendrá que ganar esta vez.

  1. Soporte – LiteSpeed vs Apache – Ganador : LiteSpeed

Si comparamos el servidor web de LiteSpeed con el de Apache en términos de soporte, ambas soluciones mantienen una documentación detallada para quien esté interesado en la autoayuda

Naturalmente, las guías están un poco más orientadas a la técnica, pero incluso un usuario novato puede encontrar suficiente material de aprendizaje.

Sin embargo, LiteSpeed parece tener una comunidad mejor organizada. Además de los foros dedicados, los usuarios de LSWS tienen sus propios grupos en Slack y Facebook, donde a menudo se discuten consejos de optimización o se resuelven problemas de los clientes.

Encuanto al soporte técnico en vivo, Apache simplemente no tiene ninguno. El software es de código abierto, por lo que la comunidad es su mejor opción para obtener soporte en vivo

En comparación, LiteSpeed es un producto comercial, por lo que ofrecen debidamente un soporte dedicado. Puede enviar fácilmente un ticket de ayuda desde su área de usuario, y los operadores suelen ser serviciales.

Incluso puede optar por el soporte Premium con LiteSpeed y obtener servicios como:

  • Instalación de módulos
  • Configuración de paquetes DDoS;
  • O la eliminación de las listas negras.

Por supuesto, estos servicios pueden ser bastante caros. Por ejemplo, 999 dólares al año por la gestión de un servidor parece demasiado caro para una empresa nueva o una PYME. Pero si no cuenta con un informático y puede permitírselo, los expertos de LSWS pueden ser justo lo que está buscando.

LiteSpeed gana esta ronda por la gran variedad de opciones de soporte y asistencia dedicada que ofrece.

  1. Premio – LiteSpeed vs Apache – Ganador: Apache

Apache ya tiene la ventaja aquí. El software siempre se ha distribuido de forma gratuita, lo cual es una de las razones por las que es una solución tan popular para gestionar servidores web.

Como plataforma propietaria, LiteSpeed es un producto de pago, con precios que van desde los 10 dólares al mes hasta los 92 dólares al mes en los niveles más altos. También existe una versión gratuita, pero es bastante limitada: sólo admite un dominio y ofrece unos 2 GB de RAM.

Al final, si el precio es su principal argumento de venta, lo gratuito (Apache) siempre ganará a lo de pago (LiteSpeed).

3.4. Apache vs Lighttpd

Hace unos 10 años (cuando Nginx aún estaba en sus inicios), Lighttpd era un servidor ligero alternativo a Apache, ya que soportaba mejor las conexiones simultáneas de miles de usuarios.

 Lighttpd

Fuente: Wikipedia

Lighttpd es un paquete de software escrito en C por Jan Kneschke, distribuido bajo la licencia BSD y disponible para Unix y Linux.

Una de las características del servidor web es que consume muy pocos recursos de RAM y CPU. Esto lo hace especialmente útil para los servidores VPS o Dedicados con pocos recursos.

Soporta la comunicación e integración con FastCGI, SCGI y CGI. Por lo tanto, es capaz de responder a las solicitudes de páginas realizadas en cualquier lenguaje de programación.

Una de las desventajas de lighttpd es que no soporta .htaccess, así como el hecho de que carece de documentación completa y de una comunidad masivamente adoptada, a diferencia de sus rivales Apache y Nginx.

He aquí 7 diferencias principales entre los servidores Apache y Lighttpd:

  1. Nginx y Lighttpd son probablemente los dos servidores asíncronos más conocidos, y Apache es de lejos el servidor basado en procesos más conocido.
  2. La mayoría de las pruebas muestran que hay una ganancia de rendimiento inherente al uso de Lighttpd sobre Apache.
  3. Apache soporta CGI y FastCGI. Está probado y su aplicación no ha cambiado desde hace años. Puede encontrar documentos con más de diez años de antigüedad y todavía válidos. Lighttpd soporta CGI y FastCGI a través del módulo.
  4. Lighttpd soporta X-Sendfile desde la versión 1.5. Apache 1 no soporta X-Sendfile. Para Apache 2 existe un módulo de terceros.
  5. Lareescritura de URLs en Apache puede ser manejada en una configuración (a nivel de sitio) o a través de un reemplazo en el estado .htaccess. En Lighttpd, está limitado a reescribir sólo a través del nivel de configuración, lo que significa que para plataformas como WordPress, tendrá que hacer código duro siguiendo la regla de reescritura de formato.
  6. Lighttpd se distribuye bajo los términos de la licencia BSD revisada. Esta opción de licencia reduce en gran medida las fricciones de colaboración entre el código de Lighttpd y el de otros proyectos distribuidos bajo otras licencias. Apache utiliza la licencia Apache 2.0 del mismo nombre, que a veces se considera «permisiva» en el sentido de que es una licencia de código abierto que no es una licencia copyleft.
  7. Instalar PHP no es tan fácil en Lighttpd como en Apache porque no hay ningún módulo para ello.

3.5. Apache frente a IIS

IIS(Internet Information Services – antes llamado Internet Information Server) es un servidor web creado por Microsoft para sus sistemas operativos de servidor

Microsoft IIS

Fuente: Código de exportación

Aunque es un sistema patentado, se basa en varios protocolos disponibles públicamente, entre ellos:

  • Protocolo de transferencia de hipertexto (HTTP)
  • El protocolo simple de transferencia de correo (SMTP);
  • Y el Protocolo de Transferencia de Archivos (FTP)

Su primera versión se introdujo con la versión 4 de Windows NT Server y ha sido objeto de varias actualizaciones. Actualmente, la versión más reciente es IIS 10 (sólo disponible en Windows Server 2019)

Tras el lanzamiento de la plataforma .NET en 2002, IIS adquirió también la función de gestionarASP.NET

Microsoft ASP NET

Fuente: Wikipedia

ASP.NET, al igual que su competidor directo JSP, se compila antes de la ejecución. Esta característica tiene ventajas sobre las opciones interpretadas como ASP y PHP.

Ahora, ¿cuál elegir?

Tanto Apache como IIS tienen sus ventajas y desventajas

  • IIS viene con Windows, pero Apache no tiene el apoyo de las grandes empresas
  • Apache tiene una excelente seguridad pero no ofrece el excelente soporte de .NET de IIS
  • Apache es gratuito e IIS no lo es;
  • Los módulos de idiomas son más fáciles de instalar en IIS, ya que sólo hay que ejecutar el instalador;
  • IIS viene con la biblioteca ASP, lista para ejecutar scripts que utilizan el lenguaje, mientras que con Apache el usuario tiene que instalar los paquetes adecuados;
  • Etc

La elección final bien puede estar definida por la solución que mejor satisfaga sus necesidades críticas

El siguiente cuadro resumen también puede ayudarle:

 Caracteristique IIS vs Apache

He aquí una breve lista de sitios y sus servidores web:

Liste de sites et leur serveur

3.6. Apache contra Caddy

Caddy es una plataforma de servidor web de código abierto diseñada para ser sencilla, fácil de usar y segura

Escrito en Go sin dependencias, Caddy es fácil de descargar y funciona en casi cualquier plataforma en la que Go compila.

Caddy

Por defecto, Caddy soporta HTTPS automático mediante el aprovisionamiento y la renovación de certificados a través de Let’s Encrypt. A diferencia de Apache, Caddy proporciona estas características de forma inmediata, y también viene con la redirección automática del tráfico HTTP a HTTPS.

En comparación con Apache, los archivos de configuración de Caddy son mucho más pequeños. Además, Caddy funciona con TLS 1.3, el último estándar de seguridad en el transporte.

En términos de rendimiento, Caddy ha demostrado ser competitivo con Apache (pero por detrás de Nginx) tanto en términos de peticiones procesadas por segundo como de estabilidad de carga.

Otra posible desventaja de Caddy es que actualmente tiene una pequeña cuota de mercado, lo que puede limitar los recursos para la resolución de problemas

Capítulo 4: Instalación y configuración de Apache

4.1 Instalación y configuración del servidor Apache: breves tutoriales en vídeo

Para ayudarle a ver todo con claridad, hemos seleccionado algunos vídeos tutoriales breves y autoexplicativos para instalar y configurar el servidor HTTP Apache:

  • Tutorial para instalar y configurar el servidor web Apache en Windows 10
  • Tutorialpara instalar y configurar Apache en Linux:
  • Tutorialpara instalar y configurar el servidor web Apache en Ubuntu Linux (para principiantes)

4.2. Inicio de Apache

Utilice los siguientes comandos:

  • Para iniciar el servicio Apache

sudo service apache2 start

  • Para comprobar si la configuración de Apache es válida y recargar

sudo apache2ctl configtest

sudo service apache2 reload

  • Para listar los módulos disponibles del Servidor HTTP Apache

/etc/init.d/apache2 -l

4.3. Configuración de Apache mediante .htaccess

Utilice el archivo «.htacess» para configurar ciertos comportamientos HTTP de Apache. Una de las principales aplicaciones de este archivo es redirigir una URL a otras.

El siguiente archivo .htacess redirige http://twaino.com a http://www.twaino.com. También redirige el acceso a una determinada página web a otra página web mediante una redirección 301

Les redirections 301

La redirección 301 indicará a los motores de búsqueda que esa página ha sido trasladada y es el método recomendado para trasladar páginas web.

Aquí tiene un vídeo autoexplicativo que puede ayudarle con la configuración de Apache a través de .htacess

4.4. Uso de módulos en Apache Http

Apache Http soporta el uso de módulos. Para habilitar los módulos, utilice a2enmod + comando. Para activar el módulo de reescritura, por ejemplo, utilice a2enmod rewrite.

Aquí hay un vídeo que explica cómo activar/desactivar módulos en Apache2: https: //youtu.be/YkZC38HfOQU

4.5. Rendimiento – Habilitación de la compresión gzip

Para optimizar el tiempo de descarga de sus páginas web, puede activar la compresión gzip. Esto requiere el módulo de Apache«mod_deflate«, que puede instalarse con el siguiente comando:

a2enmod deflate

sudo /etc/init.d/apache2 restart

La compresión se puede habilitar en el archivo de configuración por defecto de este módulo situado en /etc/apache2/mods-available/deflate.conf o a través de la página web «.htaccess«.

# comprimir todo el texto y el html:

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

[[Otros módulos de Apache]] == Soporte para php y wordpress :

sudo apt-get install libapache2-mod-fcgid

sudo apt-get install php5-cgi

A continuación, active los módulos correspondientes:

sudo a2enmod fastcgi

sudo a2enmod proxy

# requerido para el blog de wordpress

sudo a2enmod rewrite

Capítulo 5: ¿Cómo asegurar el servidor web Apache?

Asegurar su servidor web es muy importante, significa :

  • Evitar que su información confidencial se muestre
  • Proteger sus datos;
  • Y restringir el acceso.

Aquí hay 7 cosas comunes que pueden mejorar la seguridad de sus servidores web Apache:

5.1. Ocultar la versión de Apache y la información del sistema operativo

Normalmente, Apache muestra su versión y el nombre del sistema operativo en los errores.

Un atacante puede utilizar esta información para lanzar un ataque utilizando las vulnerabilidades disponibles públicamente en el servidor particular o la versión del sistema operativo.

Para evitar que el servidor web Apache muestre esta información, debe cambiar el parámetro « firma del servidor «, opción disponible en el archivo de configuración de apache. Por defecto está en «ON», debe ponerlo en«OFF«.

También puede establecer«ServerTokens Prod«, que indica al servidor web que devuelva sólo Apache y que suprima las versiones mayores y menores del sistema operativo.

Configuration Apache

Fuente: Unixmen

Después de cambiar el archivo de configuración, necesita reiniciar/recargar su servidor web apache para hacerlo efectivo.

5.2. Desactivar el listado de directorios

Si el directorio raíz de su documento no tiene un archivo índice, por defecto su servidor web apache mostrará todo el contenido del directorio raíz del documento.

Esta característica puede ser desactivada para un directorio específico a través de la opción «directiva de opciones» disponible en el archivo de configuración de Apache.

5.3. Desactive los módulos innecesarios

Se recomienda desactivar todos los módulos innecesarios que no se utilicen. Puede ver la lista de módulos habilitados disponibles en su archivo de configuración de apache.

Muchos de los módulos de la lista pueden ser desactivados, como el :

  • mod_imap
  • mod_include
  • mod_info
  • mod_userdir
  • mod_autoindex ;
  • etc

Esto se debe a que casi nunca son utilizados por los servidores web de producción.

Una vez que haya eliminado los módulos que no son útiles, guarde el archivo.

Reinicie los servicios de Apache con el siguiente comando:

/etc/init.d/httpd restart

5.4. Restringir el acceso a los archivos fuera del directorio raíz de la web

Si quiere asegurarse de que no se puede acceder a los archivos fuera del directorio raíz de la web, debe asegurarse de que el directorio está restringido con la opción«Permitir» y«Denegar» en el archivo de configuración de su servidor web.

Una vez que haya restringido el acceso fuera del directorio raíz de la web, no podrá acceder a ningún archivo situado en cualquier otra carpeta de su servidor web. Por lo tanto, obtendrá un código de retorno 404.

5.5. Uso de mod_evasive para refutar el ataque DoS

Si desea proteger su servidor web contra Dos (es decir, la denegación de servicio), debe activar el módulo mod_evasive

ModEvasive

Fuente: Ubiq

Se trata de un módulo de terceros que detecta el ataque Dos y evita que haga tanto daño como lo haría si siguiera su curso

Se puede descargar aquí: Descargue el archivo aquí.

5.6. Uso de mod_security para mejorar la seguridad de apache

Este módulo funciona como un cortafuegos para Apache y le permite supervisar el tráfico en tiempo real. También evita que el servidor web sufra ataques de fuerza bruta

modesecurity

Fuente: Solvps

El módulo mod_security puede instalarse con el gestor de paquetes por defecto de su distribución.

5.7. Limitar el tamaño de las solicitudes

Apache no tiene restricciones en cuanto al tamaño total de la petición http que podría conducir a un ataque DoS. Sin embargo, puede limitar el tamaño de la solicitud de una directiva «LimitRequestBody» de Apache con la etiqueta de directorio

El valor puede fijarse entre 0 y 2 GB (es decir, 2147483647 bytes) en función de sus necesidades.

Capítulo 6: Arquitectura modular del servidor HTTP

El servidor tiene una arquitectura modular que consiste en :

  • un Núcleo que soporta las funciones básicas comunes
  • luego una serie de módulos propios/de terceros que amplían su funcionalidad y que pueden ser activados o desactivados en una instalación según sea necesario.

Entre los más conocidos están auth_basic y mod_rewrite, que son los que más utiliza un programador. En realidad, la lista es mucho más larga

La lista completa de módulos puede verse en el índice de módulos de la documentación de Apache:

Apache HTTP server project

Entre los módulos más importantes se encuentran los módulos MPM ( Multi-Processing-Module ) que definen la arquitectura interna

La forma de distribuir el trabajo puede variar en función del módulo MPM utilizado:

  • Prefork de multiprocesamiento (mpm-prefork) ;
  • Trabajador de multiprocesamiento (mpm-worker);
  • Evento de multiprocesamiento (mpm-event);
  • Multiprocesamiento ITK (mpm-itk).

Estos módulos de multiprocesamiento (también llamados MPM) son los encargados de procesar las peticiones HTTP, gestionar los procesos y los diferentes hilos de ejecución del servicio.

La elección del módulo es una decisión crucial, ya que determinará el buen funcionamiento del servidor en función del uso que se le quiera dar.

6.1. mpm_prefork

El módulo por defecto utilizado por el servidor para el procesamiento es mpm-prefork. Este módulo abre diferentes procesos para organizar el trabajo

Esto se considera lo más seguro porque hay ciertas configuraciones y módulos que no son seguros de usar con el procesamiento de hilos

Por lo tanto, es más seguro utilizar el servidor con mpm-prefork que en lugar de abrir hilos abre procesos independientes.

Apache MPM prefork

Aunque se gana en seguridad, también es el que más recursos consume, ya que los procesos independientes consumen mucha más CPU y memoria RAM que los hilos.

6.2. mpm_worker

Este módulo tiene mejor rendimiento que mpm-prefork. Su función es abrir varios procesos como prefork, y cada uno de ellos abre a su vez diferentes hilos para responder a las peticiones.

Básicamente, tiene dos inconvenientes

  • La primera es que tiene un manejo de errores más pobre que el prefork y si un hilo falla, puede perder peticiones;
  • Y la segunda es que no todos los módulos disponibles son seguros de usar en este modo.

Por ejemplo, la forma más fácil de hacer una configuración de PHP en Apache es a través de mod_php, pero este módulo no puede ser utilizado con Worker. Por lo tanto, debe ser sustituido por un ejemplo de PHP-FPM

Apache PHP FPM

Fuente: Glowfrog Hosting

Esto, a su vez, supone una mejora en el uso de recursos, tanto de memoria como de CPU.

6.3. mpm_event

Event es bastante similar a mpm-worker, ya que se basa en él. Se centra en mejorar las solicitudes persistentes para las que Worker no es tan bueno.

Normalmente, una conexión se cerrará si no tiene más información. La retransmisión de una nueva conexión implica una comunicación de ida y vuelta para establecer algunos parámetros.

Una vez establecida la comunicación, es mucho más eficaz mantener el canal abierto. Esto se hace a través depeticiones Keep-Alive que facilitan el mantenimiento de una conexión abierta hasta que el cliente o el servidor decidan cerrarla.

Es en este sentido en el que Event supera a Worker y en otros aspectos comparten tanto las ventajas como las desventajas ya que Event se apoya en Worker sólo con la mejora de estas peticiones.

6.4. mpm_itk

Este es el módulo más reciente y, al igual que Prefork (que trabaja con procesos hijos en lugar de hilos), la principal novedad de este módulo es que permite asignar un usuario a cada VirtualHost (cada dominio alojado).

Esta forma de separar los sitios con diferentes usuarios permite :

  • que cada sitio tenga sus propios permisos de seguridad ;
  • y que los procesos de los usuarios no puedan interactuar entre sí, logrando la confidencialidad y la seguridad de los datos.

Lo mismo se puede lograr con PHP-FPM donde cada sitio puede operar con su respectivo usuario

Sin embargo, la configuración de cada uno de ellos es más engorrosa e implica un mayor uso de memoria ya que hay un proceso PHP-FPM para cada sitio.

Capítulo 7: Otras preguntas sobre el servidor Apache

7.1. ¿Qué es Apache?

El servidor HTTP Apache2 es un servidor web que utiliza el protocolo http. Está desarrollado por la Fundación de Software Apache (ASF). Es de código abierto, multiplataforma (funciona en diferentes sistemas operativos), gratuito y descargable. La página web del proyecto es www.apache.org.

7.2. ¿Por qué es tan popular Apache?

Apache es de código abierto, y como tal es desarrollado y mantenido por un gran grupo de voluntarios en todo el mundo. Una de las principales razones por las que es tan popular es que el software puede ser descargado y utilizado por cualquier persona de forma gratuita.

Además, el servidor web Apache es un entorno fácil de personalizar, es rápido, fiable y muy seguro. Esto hace que sea una opción habitual para las mejores empresas.

7.3. ¿Cómo puedo saber si mi servidor Apache está funcionando?

  1. Acceda a su servidor utilizando su cliente SSH favorito.
  2. Introduzca el siguiente comando: sudo service apache2 status.
  3. Si Apache se está ejecutando, verá el siguiente mensaje Apache está funcionando (pid 26874).

7.4. ¿Qué incluye Apache?

Apache tiene módulos para :

  • Seguridad ;
  • Elcaché;
  • Reescritura de URL;
  • Autenticación con contraseña;
  • Y así sucesivamente

También puede ajustar su propia configuración del servidor a través de un archivo llamado .htaccess, que es un archivo de configuración de Apache.

7.5. ¿Cómo está instalado el servidor Apache?

Para instalar apache como servicio :

  1. En el menú de Windows, busque: cmd;
  2. Ejecute cmd con derechos de administrador;
  3. Ir a la \ apache \bin: cd c:\ apache24\bin.
  4. Instale el servicio con la instrucción: httpd.exe -k install.
  5. Finalmente, inicie apache con la instrucción: httpd.exe -k start.

7.6. ¿Cómo puedo saber si estoy utilizando Apache?

Hay varias formas de conocer el software que utiliza nuestro servidor, una de ellas es utilizar herramientas como GTMetrix, Pingdom

La forma más fácil sería analizar el sitio web a través de Pingdom, desde la sección de solicitudes de archivos.

7.7. ¿Qué puerto de comunicación utiliza el servidor web Apache?

Por defecto, el servidor HTTP Apache está configurado para escuchar en el puerto 80 para las comunicaciones web inseguras y en el puerto 443 para las comunicaciones web seguras.

7.8. ¿Cuáles son las versiones de Apache?

Actualmente hay tres versiones de Apache en funcionamiento: las versiones 2.0, 2.2 y 2.4. Anteriormente, existía la versión 1.3 que es la más conocida y la que supuso la gran expansión del servidor.

7.9. ¿Cómo puedo iniciar, reiniciar o detener el servidor Apache?

Para iniciar, detener o reiniciar Apache como servidor web, simplemente acceda al terminal de su servidor a través de ssh y ejecute uno de los siguientes comandos:

  1. Inicie Apache: /etc/init.d/ apache2 start.
  2. Reinicie Apache: /etc/init.d/ apache2 restart.
  3. Detener Apache: /etc/init.d/apache2 stop . 5/5 – (3 votos)

7.¿Cómo funciona Apache?

Como servidor web, Apache se encarga deaceptar las peticiones de directorio (HTTP) de los usuarios de Internet y de enviarles la información deseadaen forma de archivos y páginas web

La mayor parte del software y el código de la web están diseñados para trabajar con la funcionalidad de Apache.

7.¿Qué es MySQL y PHP en Apache?

Apache es el servidor web que procesa las peticiones y sirve los recursos y contenidos web a través de HTTP

MySQL es la base de datos que almacena toda su información en un formato fácilmente consultable.

PHP es el lenguaje de programación que trabaja con Apache para ayudar a crear contenido web dinámico.

7.¿Puede Nginx sustituir a Apache?

Ambas soluciones son capaces de manejar diversas cargas de trabajo. Aunque Apache y Nginx comparten muchas cualidades, no deben considerarse totalmente intercambiables.

7.13. ¿Es Nginx lo mismo que Apache?

La principal diferencia entre Apache y NGINX es su arquitectura de diseño

Apache utiliza un enfoque orientado al proceso y crea un nuevo hilo para cada solicitud. NGINX, por otro lado, utiliza una arquitectura basada en eventos para manejar múltiples peticiones dentro de un solo hilo.

En resumen

Como hemos visto antes, Apache es el servidor web con el que trabajan miles de hosts web en todo el mundo.

Es ideal para las pequeñas y medianas empresas que quieren tener presencia en el mundo digital. Es muy compatible con WordPress, lo que le permite trabajar de forma sencilla y ordenada.

Espero que esta guía le haya ayudado a sopesar los pros y los contras para tomar la decisión correcta para su proyecto

Gracias por leer y ¡hasta pronto!

Deja un comentario