stringtranslate.com

Servidor HTTP Apache

El servidor HTTP Apache ( / ə ˈ p æ i / ə- PATCH -ee ) es un software de servidor web multiplataforma gratuito y de código abierto , publicado bajo los términos de la licencia Apache 2.0 . Es desarrollado y mantenido por una comunidad de desarrolladores bajo los auspicios de la Apache Software Foundation .

La gran mayoría de las instancias del servidor Apache HTTP se ejecutan en una distribución de Linux , [5] pero las versiones actuales también se ejecutan en Microsoft Windows , [6] OpenVMS , [7] y una amplia variedad de sistemas similares a Unix . Las versiones anteriores también se ejecutaban en NetWare , OS/2 y otros sistemas operativos, [8] incluidos puertos a mainframes. [9]

Originalmente basado en el servidor NCSA HTTPd , el desarrollo de Apache comenzó a principios de 1995 después de que el trabajo en el código NCSA se estancara. [10] Apache jugó un papel clave en el crecimiento inicial de la World Wide Web , [11] superando rápidamente a NCSA HTTPd como el servidor HTTP dominante . En 2009, se convirtió en el primer software de servidor web que presta servicio a más de 100 millones de sitios web . [12]

En marzo de 2022 , Netcraft estimó que Apache prestaba servicios al 23,04% del millón de sitios web más concurridos, mientras que Nginx prestaba servicios al 22,01%; Cloudflare con un 19,53% y Microsoft Internet Information Services con un 5,78% completaron los cuatro primeros. Para algunas de las otras estadísticas de Netcraft, Nginx está por delante de Apache. [13] Según la revisión de W3Techs de todos los sitios web, en junio de 2022 Apache ocupó el segundo lugar con un 31,4% y Nginx el primero con un 33,6%, con Cloudflare Server tercero con un 21,6%. [14]

Nombre

Según The Apache Software Foundation , su nombre fue elegido "por respeto a las diversas naciones nativas americanas denominadas colectivamente Apache , conocidas por sus habilidades superiores en estrategia de guerra y su resistencia inagotable". [15] Esto fue en un contexto en el que parecía que la Internet abierta – basada en el libre intercambio de código fuente abierto – parecía pronto ser sometida a una especie de conquista por parte del proveedor de software propietario Microsoft ; El cocreador de Apache, Brian Behlendorf (creador del nombre), vio su esfuerzo un tanto paralelo al de Gerónimo , jefe del último de los pueblos apaches libres. [16] [17] Pero admitió que el nombre "también hace un lindo juego de palabras con 'un servidor web irregular ', un servidor creado a partir de una serie de parches ".

Hay otras fuentes para la teoría del juego de palabras de software "irregular", incluida la documentación oficial del proyecto en 1995, que decía: "Apache es un nombre lindo que se quedó. Se basó en algún código existente y una serie de parches de software, un juego de palabras 'Un servidor PAtCHy'." [18] [19]

Pero en una entrevista de abril de 2000, Behlendorf afirmó que los orígenes de Apache no eran un juego de palabras, afirmando: [20]

El nombre surgió literalmente de la nada. Ojalá pudiera decir que fue algo fantástico, pero surgió de la nada. Lo puse en una página y luego, unos meses más tarde, cuando comenzó este proyecto, señalé a la gente esta página y dije: "Oye, ¿qué opinas de esa idea?" ... Alguien dijo que le gustó el nombre y que era un juego de palabras realmente bueno. Y yo dije: "¿Un juego de palabras? ¿Qué quieres decir?" Dijo: "Bueno, estamos construyendo un servidor a partir de un montón de parches de software, ¿verdad? Entonces es un servidor web con parches". Dije: "Oh, está bien". ... Cuando pensé en el nombre, no. Simplemente connotaba: "No tomes prisioneros. Sé un poco agresivo y patea traseros".

En enero de 2023, la organización sin fines de lucro Natives in Tech, con sede en Estados Unidos, acusó a la Apache Software Foundation de apropiación cultural y la instó a cambiar el nombre de la fundación y, en consecuencia, también los nombres de los proyectos de software que alberga. [21] [22]

Cuando Apache se ejecuta en Unix , su nombre de proceso es httpd, que es la abreviatura de " demonio HTTP ". [23]

Descripción general de las funciones

Apache admite una variedad de funciones, muchas de ellas implementadas como módulos compilados que amplían la funcionalidad principal. Estos pueden variar desde esquemas de autenticación hasta soporte de lenguajes de programación del lado del servidor como Perl , Python , Tcl y PHP . Los módulos de autenticación populares incluyen mod_access, mod_auth, mod_digest y mod_auth_digest, el sucesor de mod_digest. Una muestra de otras características incluye compatibilidad con Secure Sockets Layer y Transport Layer Security ( mod_ssl ), un módulo proxy ( mod_proxy ), un módulo de reescritura de URL (mod_rewrite), archivos de registro personalizados (mod_log_config) y soporte de filtrado (mod_include y mod_ext_filter).

Los métodos de compresión populares en Apache incluyen el módulo de extensión externo, mod_gzip, implementado para ayudar a reducir el tamaño (peso) de las páginas web servidas a través de HTTP . ModSecurity es un motor de prevención y detección de intrusiones de código abierto para aplicaciones web. Los registros de Apache se pueden analizar a través de un navegador web utilizando scripts gratuitos, como AWStats / W3Perl o Visitantes.

El hosting virtual permite que una instalación de Apache sirva a muchos sitios web diferentes . Por ejemplo, una computadora con una instalación de Apache podría servir simultáneamente a example.com, example.org, test47.test-server.example.edu, etc.

Apache presenta mensajes de error configurables, bases de datos de autenticación basadas en DBMS , negociación de contenido y admite varias interfaces gráficas de usuario (GUI).

Admite autenticación de contraseña y autenticación de certificado digital . Debido a que el código fuente está disponible gratuitamente, cualquiera puede adaptar el servidor a necesidades específicas y existe una gran biblioteca pública de complementos de Apache. [24]

A continuación se proporciona una lista más detallada de características:

Actuación

En lugar de implementar una única arquitectura, Apache proporciona una variedad de módulos de multiprocesamiento (MPM), que le permiten ejecutarse en un modo basado en procesos , en un modo híbrido (proceso y subproceso ) o en un modo híbrido de eventos, para poder adaptarse mejor a las demandas de cada infraestructura particular. Por lo tanto, la elección del MPM y la configuración es importante. Cuando se deben hacer concesiones en el rendimiento, Apache está diseñado para reducir la latencia y aumentar el rendimiento en comparación con simplemente manejar más solicitudes, garantizando así un procesamiento consistente y confiable de las solicitudes dentro de plazos razonables. [ se necesita aclaración ]

Para la entrega de páginas estáticas, la serie Apache 2.2 se consideró significativamente más lenta que nginx y barniz . [41] Para abordar este problema, los desarrolladores de Apache crearon el Event MPM, que combina el uso de varios procesos y varios subprocesos por proceso en un bucle asincrónico basado en eventos . [42] [ se necesita aclaración ] Esta arquitectura implementada en la serie Apache 2.4 funciona al menos tan bien como los servidores web basados ​​en eventos, según Jim Jagielski y otras fuentes independientes. [43] [44] [45] Sin embargo, algunos puntos de referencia independientes pero significativamente desactualizados muestran que todavía es la mitad de rápido que nginx, por ejemplo, [46]

Licencia

Se volvió a otorgar la licencia del código base del servidor Apache HTTP a la licencia Apache 2.0 (de la licencia 1.1 anterior) en enero de 2004, [47] y Apache HTTP Server 1.3.31 y 2.0.49 fueron las primeras versiones que utilizaron la nueva licencia. [48]

Al proyecto OpenBSD no le gustó el cambio y continuó usando versiones de Apache anteriores a la 2.0, bifurcando efectivamente Apache 1.3.x para sus propósitos. [49] [50] [51] Inicialmente lo reemplazaron con Nginx , y poco después hicieron su propio reemplazo, OpenBSD Httpd, basado en el proyecto Relayd. [52] [53] [54] [55]

Versiones

Versión 1.1: La licencia Apache 1.1 fue aprobada por la ASF en 2000: el cambio principal con respecto a la licencia 1.0 está en la 'cláusula publicitaria' (sección 3 de la licencia 1.0); Los productos derivados ya no están obligados a incluir la atribución en sus materiales publicitarios, solo en su documentación.

Versión 2.0: La ASF adoptó la licencia Apache 2.0 en enero de 2004. Los objetivos declarados de la licencia incluían facilitar el uso de la licencia para proyectos que no son de la ASF, mejorar la compatibilidad con el software basado en GPL y permitir que la licencia se incluya como referencia. de enumerar en cada expediente, aclarar la licencia sobre las contribuciones y exigir una licencia de patente para las contribuciones que necesariamente infringen las propias patentes del contribuyente.

Desarrollo

El Proyecto del Servidor HTTP Apache es un esfuerzo colaborativo de desarrollo de software destinado a crear una implementación de código fuente robusta, de calidad comercial, rica en funciones y disponible gratuitamente de un servidor HTTP (Web). El proyecto es gestionado conjuntamente por un grupo de voluntarios ubicados en todo el mundo, que utilizan Internet y la Web para comunicar, planificar y desarrollar el servidor y su documentación relacionada. Este proyecto es parte de la Apache Software Foundation. Además, cientos de usuarios han aportado ideas, código y documentación al proyecto. [64] [65] [66]

Apache 2.4 dejó de ser compatible con las plataformas BeOS , TPF , A/UX , NeXT y Tandem . [8]

Seguridad

Apache, al igual que otros programas de servidor, puede ser pirateado y explotado. La principal herramienta de ataque de Apache es Slowloris , que explota un error en el software Apache. [67] Crea muchos sockets y mantiene cada uno de ellos activo y ocupado enviando varios bytes (conocidos como "encabezados de mantenimiento") para informar al servidor que la computadora todavía está conectada y no experimenta problemas de red. Los desarrolladores de Apache han abordado Slowloris con varios módulos para limitar los daños causados; Los módulos de Apache mod_limitipconn, mod_qos , mod_evasive, mod security , mod_noloris y mod_antiloris se han sugerido como medios para reducir la probabilidad de un ataque exitoso de Slowloris. [68] [69] Desde Apache 2.2.15, Apache incluye el módulo mod_reqtimeout como la solución oficial respaldada por los desarrolladores. [70]

Ver también

Referencias

  1. ^ "Acerca del proyecto del servidor HTTP Apache". Fundación de software Apache . Archivado desde el original el 7 de junio de 2008 . Consultado el 25 de junio de 2008 .
  2. ^ "[ANUNCIO] Lanzamiento del servidor Apache HTTP 2.4.58". 19 de octubre de 2023 . Consultado el 19 de octubre de 2023 .
  3. ^ "Índice de Apache Software Foundation: índice de proyectos por lenguaje de programación". Archivado desde el original el 2 de marzo de 2016 . Consultado el 27 de febrero de 2016 .
  4. ^ "Compilar e instalar". httpd.apache.org . La Fundación de Software Apache. Archivado desde el original el 7 de mayo de 2016 . Consultado el 9 de mayo de 2016 .
  5. ^ "Distribuciones de SO/Linux utilizando Apache". Secure1.securityspace.com . Archivado desde el original el 18 de septiembre de 2018 . Consultado el 17 de septiembre de 2018 .
  6. ^ "Notas específicas de la plataforma: servidor HTTP Apache versión 2.4". httpd.apache.org . Archivado desde el original el 22 de enero de 2019 . Consultado el 21 de enero de 2019 .
  7. ^ "Servidor web seguro". vmssoftware.com . Archivado desde el original el 22 de octubre de 2020 . Consultado el 20 de octubre de 2020 .
  8. ^ ab "Actualización a 2.4 desde 2.2". Archivado desde el original el 10 de mayo de 2021 . Consultado el 12 de mayo de 2021 . Se eliminó la compatibilidad con plataformas para BeOS, TPF e incluso plataformas más antiguas como A/UX, Next y Tandem. Se creía que de todos modos estaban rotos.
  9. ^ "El puerto Apache EBCDIC - Servidor HTTP Apache versión 2.4". httpd.apache.org . Archivado desde el original el 27 de febrero de 2019 . Consultado el 16 de agosto de 2019 .
  10. ^ "Acerca del proyecto del servidor Apache HTTP: el proyecto del servidor Apache HTTP". httpd.apache.org . Consultado el 8 de febrero de 2024 .
  11. ^ Cuota de mercado de Netcraft Archivado el 20 de mayo de 2010 en Wayback Machine para los mejores servidores en todos los dominios, agosto de 1995 - hoy (actualizado mensualmente)
  12. ^ "Encuesta sobre servidores web de febrero de 2009". Netcraft . 18 de febrero de 2009. Archivado desde el original el 26 de febrero de 2009 . Consultado el 29 de marzo de 2009 .
  13. ^ "Encuesta sobre servidores web de marzo de 2022". Noticias de Netcraft . 29 de marzo de 2022. Archivado desde el original el 28 de mayo de 2022 . Consultado el 18 de junio de 2022 .
  14. ^ "Estadísticas de uso de servidores web". w3techs.com . Archivado desde el original el 25 de julio de 2023 . Consultado el 18 de junio de 2022 .
  15. ^ "Fundación Apache". www.apache.org . Archivado desde el original el 13 de diciembre de 2021 . Consultado el 22 de agosto de 2018 .
  16. ^ ""Trillions and Trillions Served "documental sobre The Apache Software Foundation". La Fundación Apache / Youtube. 2020. Archivado desde el original el 22 de noviembre de 2021.
  17. ^ "Una base de confianza: construyendo un futuro blockchain: Brian Behlendorf". Fundación Long Now / YouTube. 2020-02-10. Archivado desde el original el 22 de noviembre de 2021.
  18. ^ "Información sobre el proyecto del servidor Apache HTTP". 15 de abril de 1997. Archivado desde el original el 15 de abril de 1997.
  19. ^ "Preguntas frecuentes sobre el servidor Apache". Archivado desde el original el 6 de enero de 1997 . Consultado el 15 de enero de 2017 .
  20. ^ McMillan, Robert (15 de abril de 2000). "Poder Apache". Revista Linux . Archivado desde el original el 28 de enero de 2019.{{cite web}}: CS1 maint: unfit URL (link)
  21. ^ Claburn, Thomas (11 de enero de 2023). "Los nativos americanos piden a la fundación Apache que cambie de nombre". El registro . Archivado desde el original el 12 de enero de 2023 . Consultado el 12 de enero de 2023 .
  22. ^ Purdy, Kevin (12 de enero de 2023). "Un grupo tecnológico indígena pide a la Fundación Apache que cambie su nombre". Ars Técnica . Archivado desde el original el 12 de enero de 2023 . Consultado el 12 de enero de 2023 .
  23. ^ "Documentos Apache". httpd.apache.org . Archivado desde el original el 5 de septiembre de 2018 . Consultado el 22 de agosto de 2018 .
  24. ^ "Servidor web Apache". webopedia.com . 23 de marzo de 1998. Archivado desde el original el 12 de mayo de 2021 . Consultado el 12 de mayo de 2021 .
  25. ^ "Tutorial del servidor Apache HTTP: archivos .htaccess". Apache.org. Archivado desde el original el 25 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  26. ^ "mod_proxy". Apache.org. Archivado desde el original el 29 de julio de 2018 . Consultado el 19 de febrero de 2016 .
  27. ^ "mod_proxy_balancer". Apache.org. Archivado desde el original el 13 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  28. ^ "Gerente del equilibrador". Apache.org. Archivado desde el original el 4 de marzo de 2016 . Consultado el 19 de febrero de 2016 .
  29. ^ "Autenticación y autorización". Apache.org. Archivado desde el original el 31 de enero de 2018 . Consultado el 19 de febrero de 2016 .
  30. ^ "mod_reescritura". Apache.org. Archivado desde el original el 13 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  31. ^ "mod_headers". Apache.org. Archivado desde el original el 21 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  32. ^ "mod_sed". Apache.org. Archivado desde el original el 4 de marzo de 2016 . Consultado el 19 de febrero de 2016 .
  33. ^ "mod_sustituto". Apache.org. Archivado desde el original el 4 de marzo de 2016 . Consultado el 19 de febrero de 2016 .
  34. ^ "Tutorial de Apache httpd: Introducción a las inclusiones del lado del servidor". Apache.org. Archivado desde el original el 18 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  35. ^ "mod_usertrack". Apache.org. Archivado desde el original el 12 de mayo de 2021 . Consultado el 12 de mayo de 2021 .
  36. ^ "Tutorial de Apache: contenido dinámico con CGI". Apache.org. Archivado desde el original el 15 de noviembre de 2021 . Consultado el 19 de febrero de 2016 .
  37. ^ "Directorios web por usuario". Apache.org. Archivado desde el original el 16 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  38. ^ "Expresiones en el servidor HTTP Apache". Apache.org. Archivado desde el original el 29 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  39. ^ "mod_status". Apache.org. Archivado desde el original el 13 de febrero de 2016 . Consultado el 19 de febrero de 2016 .
  40. ^ "Módulo Apache: mod_ftp". Apache.org. Archivado desde el original el 10 de julio de 2017 . Consultado el 8 de julio de 2017 .
  41. ^ "Servicio de archivos estáticos: una comparación entre Apache, Nginx, Varnish y G-WAN". ¡Punto! . 14 de marzo de 2011. Archivado desde el original el 24 de abril de 2014 . Consultado el 23 de abril de 2014 .
  42. ^ "trabajador - Servidor HTTP Apache versión 2.2". apache.org . Archivado desde el original el 10 de mayo de 2021 . Consultado el 12 de mayo de 2021 .
  43. ^ "Apache httpd 2.4" (PDF) . Archivado (PDF) desde el original el 27 de enero de 2012 . Consultado el 8 de febrero de 2012 .
  44. ^ "Elegir un servidor proxy". 14 de abril de 2014. Archivado desde el original el 3 de marzo de 2016 . Consultado el 19 de febrero de 2016 .
  45. ^ "Evaluación del rendimiento de Apache 2.4.1". 22 de febrero de 2012. Archivado desde el original el 2 de marzo de 2016 . Consultado el 19 de febrero de 2016 .
  46. ^ "Rendimiento de Apache 2.4 con el evento MPM comparado con Nginx". eschrade.com . 3 de enero de 2014. Archivado desde el original el 13 de marzo de 2014 . Consultado el 13 de marzo de 2014 .
  47. ^ "Licencia Apache, versión 2.0". La Fundación de Software Apache. Enero de 2004. Archivado desde el original el 18 de mayo de 2013 . Consultado el 21 de mayo de 2013 .
  48. ^ Burton, Richard Antonio. "Para su información: Lanzamiento del servidor Apache HTTP 2.0.49". Grupo de noticias : alt.apache.configuration . Consultado el 16 de febrero de 2018 .
  49. ^ de Raadt, Theo (18 de febrero de 2004). "La nueva licencia apache". openbsd-misc (lista de correo) . Consultado el 21 de mayo de 2013 .
  50. ^ "Política de derechos de autor". OpenBSD. Archivado desde el original el 13 de noviembre de 2017 . Consultado el 12 de mayo de 2013 .
  51. ^ "apache-httpd-openbsd-1.3.20140502p2 - Versión mejorada y segura de OpenBSD de Apache 1.3". Puertos OpenBSD . Archivado desde el original el 2 de marzo de 2015 . Consultado el 28 de diciembre de 2014 .
  52. ^ Marvin, Rob (25 de marzo de 2015). "Dentro del nuevo servidor web httpd de OpenBSD". Tiempos SD . Archivado desde el original el 12 de octubre de 2019 . Consultado el 12 de octubre de 2019 .
  53. ^ "Guía de actualización de OpenBSD: 5.1 a 5.2". openbsd.org . Archivado desde el original el 22 de diciembre de 2017 . Consultado el 13 de marzo de 2014 .
  54. ^ jj, ed. (14 de marzo de 2014). "Aviso: Apache eliminado de la base". Revista OpenBSD . Archivado desde el original el 18 de octubre de 2014 . Consultado el 29 de diciembre de 2014 .
  55. ^ "Guía de actualización de OpenBSD: 5,5 a 5,6". openbsd.org . Archivado desde el original el 22 de diciembre de 2014 . Consultado el 29 de diciembre de 2014 .
  56. ^ "Anuncio: ¡Lanzamiento de Apache 1.3.0!". 1998-06-06. Archivado desde el original el 11 de diciembre de 2018 . Consultado el 6 de enero de 2015 .
  57. ^ "Lanzamiento de Apache HTTP Server 1.3.42 (versión final de 1.3.x)". apache.org . Archivado desde el original el 11 de marzo de 2015 . Consultado el 6 de enero de 2015 .
  58. ^ "Versión oficial: Apache 2.0.35 ahora es GA". 2002-04-06. Archivado desde el original el 12 de diciembre de 2018 . Consultado el 6 de enero de 2015 .
  59. ^ "[Anuncio] Lanzamiento del servidor Apache HTTP 2.0.65". apache.org . Archivado desde el original el 28 de julio de 2015 . Consultado el 6 de enero de 2015 .
  60. ^ "Lanzamiento del servidor Apache HTTP 2.2.0". 2005-12-01. Archivado desde el original el 12 de diciembre de 2018 . Consultado el 6 de enero de 2015 .
  61. ^ "[Anuncio] Lanzamiento del servidor Apache HTTP 2.2.34". apache.org . Archivado desde el original el 21 de agosto de 2020 . Consultado el 3 de abril de 2019 .
  62. ^ "[ANUNCIO] Lanzamiento del servidor Apache HTTP 2.4.1". 2012-02-21. Archivado desde el original el 12 de febrero de 2021 . Consultado el 17 de julio de 2015 .
  63. ^ "Lanzamiento del servidor Apache HTTP 2.4.58". apache.org . Archivado desde el original el 25 de octubre de 2017 . Consultado el 25 de octubre de 2017 .
  64. ^ Grupo de Documentación. "Acerca del proyecto del servidor Apache HTTP: el proyecto del servidor Apache HTTP". apache.org . Archivado desde el original el 7 de junio de 2008 . Consultado el 12 de mayo de 2021 .
  65. ^ "El proyecto de código abierto del servidor Apache HTTP en Ohloh. (nd). Ohloh, la red de código abierto. Consultado el 12 de noviembre de 2012". Archivado desde el original el 9 de marzo de 2012 . Consultado el 8 de febrero de 2012 .
  66. ^ "Capítulo 4. El servidor HTTP Apache". fedoraproject.org . Archivado desde el original el 25 de noviembre de 2012 . Consultado el 3 de diciembre de 2012 .
  67. ^ Zdrnja, Bojan (21 de junio de 2009). "Mitigación de la herramienta Apache HTTP DoS". Instituto SANS . Archivado desde el original el 12 de noviembre de 2021 . Consultado el 12 de noviembre de 2021 .
  68. ^ "DoS HTTP de Slowloris". Archivado desde el original el 26 de abril de 2015 . Consultado el 26 de junio de 2009 .{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  69. ^ "mod_noloris: defensa contra DoS". tribuna de niq. Julio de 2009. Archivado desde el original el 8 de octubre de 2011 . Consultado el 7 de enero de 2012 .
  70. ^ "mod_reqtimeout". Apache.org. Archivado desde el original el 3 de julio de 2013 . Consultado el 3 de julio de 2013 .

enlaces externos