Servidor HTTP Apache

Servidor HTTP Apache Descripción de la imagen page.png predeterminada de Apache. Información
Desarrollado por Fundación de software Apache
Primera versión 1995
Última versión 2.4.46 (5 de agosto de 2020)
Versión avanzada 2.5.0-alfa (8 de noviembre de 2017)
Depositar svn.apache.org/repos/asf/httpd/httpd
Escrito en VS
Sistema de explotación Multiplataforma
Idiomas inglés
Tipo Servidor web
Licencia Licencia de Apache versión 2.0
Sitio web httpd.apache.org

El software gratuito Apache HTTP Server ( Apache ) es un servidor HTTP creado y mantenido dentro de Apache Foundation . Hasta abril de 2019, fue el servidor HTTP más popular en la World Wide Web . Se distribuye bajo los términos de la licencia de Apache .

Histórico

Apache apareció en Abril de 1995. Al principio, se trataba de una colección de correcciones y adiciones al servidor NCSA HTTPd 1.2, que era de dominio público y era el servidor HTTP más popular en ese momento. De este origen, muchas personas afirman que el nombre Apache proviene de un servidor con parches , o "un servidor con parches". Posteriormente, Apache se reescribió por completo, por lo que en la versión 2 no hay rastro de NCSA HTTPd.

Inicialmente, Apache era la única alternativa seria y gratuita al servidor HTTP de Netscape ( iPlanet , ahora Sun ONE ). DesdeAbril de 1996, según el estudio en curso de Netcraft , Apache se ha convertido en el servidor HTTP más popular de Internet .

Cuota de mercado de Apache:

Apache versión 2 tiene varios avances importantes sobre la versión 1, incluido el soporte para múltiples plataformas ( Windows , Linux y UNIX , entre otras), soporte para procesos ligeros UNIX , una nueva API y soporte IPv6 .

La Fundación Apache ( Apache Software Foundation o ASF ) se creó en 1999 a partir del grupo Apache ( Apache Group ) que creó el servidor en 1995 . Desde entonces, se han desarrollado muchos otros software útiles para la World Wide Web junto con el servidor HTTP.

Disponibilidad

Apache funciona principalmente en sistemas operativos UNIX ( Linux , Mac OS X , Solaris , BSD y UNIX ) y Windows . La versión de Windows solo se considera estable desde la versión 1.2 de Apache. Apache es utilizado por muchos productos, incluido WebSphere de IBM , así como Oracle Corporation .

Características

Apache está diseñado para soportar muchos módulos dándole funcionalidad adicional: interpretación de Perl , PHP , Python y Ruby , servidor proxy , Interfaz de puerta de enlace común , Incluye del lado del servidor , reescritura de URL , negociación de contenido, protocolos de comunicación adicionales, etc. Sin embargo, cabe señalar que la existencia de muchos módulos de Apache complica la configuración del servidor web. De hecho, las mejores prácticas recomiendan cargar solo módulos útiles: regularmente se descubren muchas vulnerabilidades de seguridad que afectan solo a los módulos de Apache.

Las posibilidades de configuración de Apache son una característica emblemática. El principio se basa en una jerarquía de archivos de configuración, que se pueden administrar de forma independiente. Esta función es particularmente útil para los hosts que pueden atender los sitios de varios clientes utilizando un solo servidor HTTP . Para los clientes, esta funcionalidad se hace visible mediante el archivo .htaccess .

Entre las herramientas que ayudan al mantenimiento de Apache, los archivos de registro se pueden analizar utilizando muchos scripts y software gratuito como AWStats , Webalizer o W3Perl . Varias interfaces gráficas facilitan la configuración del servidor.

Algunos módulos interesantes

Modos Prefork, Worker y Event

Estos dos modos de funcionamiento principales cambian notablemente el rendimiento del servidor HTTP.

Históricamente, Apache funciona en prefork , lo que significa que un proceso principal iniciado con derechos extendidos ( raíz ) inicia procesos secundarios, cada uno de los cuales manejará un cierto número de solicitudes de clientes. Sin embargo, en Linux, la multiplicación de procesos provoca un aumento en el consumo de recursos (memoria, descriptores de archivos).

En el modo de trabajo , Apache inicia subprocesos que manejarán las solicitudes entrantes. La diferencia es que este es un modo más preventivo en el que el proceso padre prepara los recursos para sus subprocesos. Es posible que los módulos desarrollados por terceros o las bibliotecas utilizadas por estos módulos no estén diseñados para funcionar en un entorno de subprocesos múltiples; en este caso, podrían ser una fuente de mal funcionamiento si se utilizan con el modo trabajador .

Desde la versión 2.4, el módulo de eventos está disponible en producción. Esto se deriva del modo trabajador , excepto que los subprocesos no solo dan servicio a una conexión de cliente, sino que pueden realizar múltiples tareas independientemente de la conexión. Por lo tanto, las nociones de KeepAlivese manejan mejor en el sentido de que un hilo ya no espera a que se termine la conexión para servir a otro. Más claramente, el hilo atiende una solicitud y no una conexión.

Módulos: prefork.c, worker.c, event.c

Módulos de proxy

A través de mod_proxy, entre otros, es posible utilizar Httpd Server como un Proxy real .

Uno de los usos más interesantes es el balanceo de carga , ya sea en el contexto de alta disponibilidad, o para obtener un mejor rendimiento. Las habilidades de Reverse Proxying están lo suficientemente desarrolladas para un lanzamiento sin problemas a la producción a partir de la versión 2.1.

Módulos: mod_proxy, mod_proxy_balancer, mod_proxy_http, mod_proxy_ajp, mod_proxy_connect

Notas y referencias

  1. (en) Daniel Ruggeri, Apache HTTP Server 4.2.46 lanzado  " ,7 de agosto de 2020(consultado el 7 de agosto de 2020 )
  2. "  https://github.com/apache/httpd/releases/tag/2.5.0-alpha  " (Consultado el 4 de septiembre de 2019 )
  3. (en-GB) “  Encuesta de servidores web de abril de 2019 | Netcraft News  ” , en news.netcraft.com (consultado el 15 de enero de 2020 )
  4. "  Información sobre el proyecto del servidor HTTP Apache  " [ archivo15 de abril de 1997] ,15 de abril de 1997
  5. "  Preguntas frecuentes sobre el servidor Apache  " [ archivo de6 de enero de 1997] (consultado el 15 de enero de 2017 )
  6. Encuesta de servidor Web de febrero de 2005 encuentra 40 millones de sitios en Apache  " .
  7. news.netcraft.com/ .
  8. PHP 5.2 utilizado por el 23% de los sitios web en febrero de 2008 .
  9. Netcraft: Encuesta sobre servidores web de febrero de 2008 .
  10. Servidores web: 72,45% de cuota de mercado para Apache , publicado el 16 de diciembre de 2008, artículo que cita a SecuritySpace como fuente.
  11. Netcraft: May 2014 Encuesta Web Server , publicado el 1 er de mayo de de 2014.
  12. (in) "  ¿Cuántos sitios web activos hay?  " , Netcraft
  13. (En) "  Encuesta de servidores web de enero de 2015  " , Netcraft,15 de enero de 2015(consultado el 27 de enero de 2015 )
  14. "  Estadísticas en Internet francés. udomo.fr  ” , en www.udomo.fr (consultado el 12 de febrero de 2017 )

Apéndices

Artículos relacionados

enlaces externos