Apache es un software de servidor web gratuito y de código abierto que utilizan aproximadamente 40% de los sitios web por todo el mundo. Apache HTTP Server es su nombre oficial. Es desarrollado y mantenido por el Fundación de software Apache . Apache permite a los propietarios de los sitios web publicar contenido a través de la web. Es la razón por la que se le conoce como ' Servidor web .' Una de las versiones más antiguas y fiables del servidor web Apache se publicó en 1995.
Si alguien desea visitar cualquier sitio web, debe completar el nombre del dominio en la barra de direcciones de su navegador. El servidor web traerá los archivos solicitados actuando como repartidor virtual.
Significado del servidor web
Servidores de correo, servidores de bases de datos, servidores web, y servidores de archivos Utilice diferentes tipos de software de servidor. Todas estas aplicaciones pueden acceder a una gran cantidad de archivos guardados en el servidor físico y aplicarlos para muchos objetivos.
El objetivo de los servidores web es ofrecer sitios web a través de Internet. Se comporta como intermediario entre las máquinas cliente y los servidores para lograr ese objetivo. Puede extraer el contenido a través del servidor en cada solicitud del usuario. Además, entrega esta solicitud a la web.
Una de las tareas más críticas de cualquier servidor web es proporcionar servicios a varios usuarios diferentes de la web al mismo tiempo. Los servidores web ejecutan archivos especificados en un tipo diferente de lenguajes de programación como Java , Pitón , PHP , y muchos otros. Los servidores web convierten estos archivos en archivos HTML estáticos. Proporciona servicios a estos archivos dentro del navegador del servidor web. El navegador web puede definirse como una herramienta responsable de una comunicación decente entre cliente y servidor.
Trabajo de Apache
Apache no es un servidor físico cualquiera; es un software que se ejecuta en el servidor. Sin embargo, lo definimos como un servidor web. Su objetivo es establecer una conexión entre los navegadores de los visitantes del sitio web (Safari, Google Chrome, Firefox, etc.) y el servidor. Apache se puede definir como software multiplataforma, por lo que puede funcionar en servidores Windows y UNIX.
Cuando un visitante desea cargar una página en nuestro sitio web, la página de inicio, por ejemplo, o nuestra página 'Acerca de nosotros', el navegador del visitante enviará una solicitud a nuestro servidor. Apache devolverá una respuesta junto con cada archivo solicitado (imágenes, archivos, etc.). El cliente y el servidor se comunican mediante el protocolo HTTP y Apache es responsable de una comunicación segura y fluida entre ambas máquinas.
Apache es un software altamente personalizable . Contiene la estructura basada en módulos. Varios módulos permiten a los administradores del servidor activar y desactivar funciones adicionales. Apache incluye módulos para almacenamiento en caché, seguridad, autenticación de contraseñas, reescritura de URL y otros fines. Además, podemos realizar nuestra propia configuración del servidor con la ayuda de un archivo conocido como .htaccess . Es un archivo de configuración compatible con Apache.
Otros servidores web frente a Apache
Hay tantos servidores web disponibles que son diferentes de Apache. Todas las aplicaciones del servidor web han sido construidas para diferentes tipos de objetivos. Apache tiene algunos rivales y alternativas y es software principalmente usado.
Apache frente a NGINX
Nginx se pronuncia como Motor-X . Es una nueva aplicación de servidor web y se publicó por primera vez en 2004. Nginx ha ganado popularidad entre los propietarios de sitios web. Fue desarrollado para resolver el problema c10k, lo que significa que los servidores web que utilizan subprocesos para gestionar diversas solicitudes de los usuarios no pueden manejar más de 10000 conexiones a la vez.
- Los propietarios de sitios web con mucho tráfico pueden encontrar problemas de rendimiento porque Apache utiliza una estructura basada en subprocesos. Nginx define el problema c10k que probablemente sea uno de los más afortunados.
- Nginx contiene una arquitectura basada en eventos. No crea un proceso más nuevo para todas las solicitudes. En lugar de eso, gestiona todas las solicitudes entrantes en un hilo individual. Este proceso maneja varios procesos de trabajo que implementan el procesamiento real de la solicitud. El modelo basado en eventos de Nginx comparte las solicitudes de los usuarios entre técnicas de trabajo de una manera fácil y eficiente, por lo que proporciona una mejor escalabilidad.
- Nginx puede ser una mejor opción porque puede administrar sitios web de alto tráfico utilizando recursos mínimos. Más específicamente, puede ser utilizado por varios sitios web de alta visibilidad como Airbnb, Pinterest, Hulu y Netflix.
- Sin embargo, Apache ofrece muchas ventajas sobre Nginx porque tiene una configuración sencilla, un entorno amigable para principiantes y varios módulos para jugadores medianos o pequeños.
Apache contra Tomcat
Gato Cab puede definirse como un servidor web y está mejorado por la Apache Software Foundation. De ahí que Apache Tomcat sea su nombre oficial. Tomcat también es un servidor HTTP. Sin embargo, mejora las aplicaciones Java en lugar de los sitios web estáticos. Este servidor web puede ejecutar muchas aplicaciones Java distintas como WebSocket, Java EL, JSP (Páginas de JavaServer), y Servlet Java .
- En concreto, Tomcat se creó para aplicaciones Java, mientras que Apache se creó como un servidor HTTP. Podemos aplicar Apache con distintos lenguajes de programación (Perl, Python, PHP, etc.) con el soporte del módulo de Apache adecuado (mod_perl, mod_python, mod_php, etc.).
- Aunque podemos aplicar un servidor web Tomcat para servir páginas web (estático), es menos efectivo para este propósito en comparación con el servidor Apache. Tomcat puede precargar Java VM y otras bibliotecas de Java que no necesitaremos en la mayoría de los sitios web.
- Además, Tomcat es menos configurable en comparación con otros tipos de servidores web. La mejor opción es un servidor HTTP como NGINX o Apache para ejecutar WordPress.
Pros y contras de Apache
Apache puede ser una excelente opción para ejecutar nuestro sitio web sobre una plataforma versátil y estable. Aunque tiene algunas desventajas que debemos comprender.
Ventajas:
- Software estable y confiable.
- Gratis y de código abierto, incluso para uso económico.
- Parches de seguridad periódicos, actualizados con frecuencia.
- Apto para principiantes, fácil de configurar.
- Flexible debido a la estructura basada en módulos.
- Funciona de inmediato con los sitios de WordPress.
- Multiplataforma (implementos en servidores Windows y Unix).
- Soporte fácilmente disponible y gran comunidad en caso de cualquier problema.
Contras:
- Varios problemas de rendimiento en sitios web con mucho tráfico.
- Varias opciones de configuración pueden causar susceptibilidad a la seguridad.
Versiones de Apache
Versión 1.1
Esta versión de Apache fue autorizada en el año 2000 por la ASF. El principal cambio se encuentra en la 'cláusula publicitaria' de la licencia 1.0. El producto derivado de la 'cláusula publicitaria' ya no es necesario para incluir aspectos de los materiales publicitarios (solo en la documentación).
Versión 2.0
La versión 2.0 de Apache fue adoptada por la ASF en enero de 2004. Sus objetivos declarados incluían hacer que la licencia fuera fácil de aplicar para algunos proyectos que no son de ASF. Puede mejorar la compatibilidad con el software basado en GPL. Permite agregar la licencia por referencia en lugar de enumerarla en todos los archivos. También aclara la licencia sobre las aportaciones. Se necesita cualquier licencia de patente sobre contribuciones que infrinjan necesariamente las patentes de la contribución.
Seguridad de Apache
Al igual que otros servidores web, Apache puede ser explotado y pirateado. La principal herramienta de ataque de Apache es Slowloris. Slowloris puede explotar los errores dentro del software Apache. Puede construir varios sockets y mantener todos estos sockets activos y envía varios bytes (llamados 'encabezados de mantenimiento de vida') para informar al servidor que el sistema está conectado y no enfrenta ningún problema de red.
Muchos desarrolladores de Apache han definido Slowloris con varios módulos para limitar el daño causado. Varios módulos de Apache como mod_antiloris, mod_noloris, mod_security, mod_evasive, mod_qos, y mod_limitipconn Se han sugerido cada uno de ellos para reducir la posibilidad de un ataque exitoso de Slowloris. Apache envía el módulo mod_reqtimeout como la solución ejecutiva promovida por los desarrolladores desde Apache 2.2.15.
Desarrollo de apache
Versiones del servidor Apache HTTP
Último lanzamiento | Versión inicial | Versión |
---|---|---|
03-02-2010 (1.2.42) | 06-06-1998 | 1.3 |
10-07-2013 (2.0.65) | 06-04-2002 | 2.0 |
11-07-2017 (2.2.34) | 01-12-2005 | 2.2 |
07-08-2020 (2.4.46) | 21-02-2012 | 2.4 |
El proyecto Apache es un esfuerzo colectivo de mejora del software destinado a crear una implementación de servidor HTTP de código fuente de calidad comercial, robusta, disponible gratuitamente y rica en funciones. En conjunto, el proyecto ha sido llevado a cabo por un equipo de voluntarios repartidos por todas partes. Se puede hacer utilizando la Web e Internet para desarrollar, comunicar y planificar cualquier servidor y la documentación relacionada.
El proyecto es parte de la Apache Software Foundation. Muchos usuarios han compartido su código, documentación e ideas con el proyecto.
La versión Apache 2.4 proporciona soporte para plataformas Tandem, NeXT, UX/A, TPF y BeOS.