This article may be too technical for most readers to understand.(September 2010) |
Autor(es) original(es) | Robert McCool |
---|---|
Desarrollador(es) | Fundación de software Apache |
Lanzamiento inicial | 1995 (1995) | [1]
Versión estable | 2.4.62 [2] / 17 de julio de 2024 (2024-07-17) |
Repositorio |
|
Escrito en | C [3] |
Sistema operativo | Similar a Unix , Microsoft Windows , [4] OpenVMS |
Tipo | Servidor web |
Licencia | Apache-2.0 |
Sitio web | httpd.apache.org |
El servidor HTTP Apache ( / əˈpætʃ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 de Apache HTTP Server se ejecutan en una distribución 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] incluyendo puertos para mainframes. [9]
Apache, que originalmente se basaba en el servidor HTTPd de NCSA , comenzó a desarrollarse a principios de 1995 después de que el trabajo en el código de 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 en dar servicio a más de 100 millones de sitios web . [12]
En marzo de 2022 [update], Netcraft estimó que Apache servía al 23,04% del millón de sitios web más activos, mientras que Nginx servía al 22,01%; Cloudflare con el 19,53% y Microsoft Internet Information Services con el 5,78% completaban los cuatro primeros puestos. En otras estadísticas de Netcraft, Nginx está por delante de Apache. [13] Según la revisión de todos los sitios web de W3Techs, en junio de 2022 Apache ocupaba el segundo lugar con el 31,4% y Nginx el primero con el 33,6%, con Cloudflare Server en tercer lugar con el 21,6%. [14]
Según la Apache Software Foundation , su nombre fue elegido "por respeto a las diversas naciones nativas americanas conocidas colectivamente como 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, pronto estaría sujeta a una especie de conquista por parte del proveedor de software propietario Microsoft ; el cocreador de Apache, Brian Behlendorf , originador del nombre, vio su esfuerzo algo paralelo al de Geronimo , 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 hecho de una serie de parches ".
Existen otras fuentes que respaldan la teoría del juego de palabras sobre el software "irregular", incluida la documentación oficial del proyecto en 1995, que afirmaba: "Apache es un nombre simpático que se mantuvo. Se basaba en un código existente y una serie de parches de software, un juego de palabras con el servidor 'A 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. Me gustaría poder decir que era algo fantástico, pero fue algo inesperado. Lo puse en una página y unos meses después, cuando empezó este proyecto, le señalé a la gente esta página y les dije: "Oye, ¿qué te parece esa idea?"... Alguien dijo que le gustaba el nombre y que era un juego de palabras muy bueno. Y yo le dije: "¿Un juego de palabras? ¿Qué quieres decir?". Me dijo: "Bueno, estamos construyendo un servidor a partir de un montón de parches de software, ¿no? Así que es un servidor web con parches". Le dije: "Ah, está bien".... Cuando pensé en el nombre, no. Simplemente tenía una connotación: "No hagas 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 EE. UU., 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 "HTTP daemon ". [23]
Apache admite una variedad de características, muchas de ellas implementadas como módulos compilados que extienden la funcionalidad principal. Estas pueden ir desde esquemas de autenticación hasta compatibilidad con 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 compatibilidad con filtros (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 con la reducción del tamaño (peso) de las páginas web servidas a través de HTTP . ModSecurity es un motor de detección y prevenció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 Visitors.
El alojamiento virtual permite que una instalación de Apache brinde servicio a muchos sitios web diferentes . Por ejemplo, una computadora con una instalación de Apache podría brindar servicio 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 mediante contraseña y certificado digital . Como el código fuente está disponible de forma gratuita, 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:
public_html
páginas web por usuario [37]En lugar de implementar una única arquitectura, Apache ofrece 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 adaptarse mejor a las demandas de cada infraestructura en 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 relación con el simple manejo de más solicitudes, lo que garantiza un procesamiento consistente y confiable de las solicitudes dentro de plazos razonables. [ aclaración necesaria ]
Para entregar páginas estáticas, la serie Apache 2.2 se consideró significativamente más lenta que nginx y varnish . [41] Para abordar este problema, los desarrolladores de Apache crearon Event MPM, que mezcla el uso de varios procesos y varios subprocesos por proceso en un bucle asincrónico basado en eventos . [42] [ aclaración necesaria ] Esta arquitectura tal como se implementó 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 obsoletos muestran que todavía es la mitad de rápido que nginx, por ejemplo [46]
El código base de Apache HTTP Server fue renombrado a la Licencia Apache 2.0 (de la licencia anterior 1.1) en enero de 2004, [47] y Apache HTTP Server 1.3.31 y 2.0.49 fueron las primeras versiones que usaron 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]
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 de publicidad" (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 hacer que la licencia fuera más fácil de usar para proyectos no pertenecientes a la ASF, mejorar la compatibilidad con software basado en GPL, permitir que la licencia se incluyera por referencia en lugar de aparecer en cada archivo, aclarar la licencia sobre las contribuciones y requerir una licencia de patente para las contribuciones que necesariamente infrinjan las patentes propias de un colaborador.
Versión | Lanzamiento inicial | Último lanzamiento |
---|---|---|
Old version, no longer maintained:1.3 | 6 de junio de 1998 [56] | 03-02-2010 (1.3.42) [57] |
Old version, no longer maintained:2.0 | 6 de abril de 2002 [58] | 10 de julio de 2013 (2.0.65) [59] |
Old version, no longer maintained:2.2 | 1 de diciembre de 2005 [60] | 11 de julio de 2017 (2.2.34) [61] |
Current stable version: 2.4 | 21 de febrero de 2012 [62] | 17 de julio de 2024 (2.4.62) [63] |
Legend: Versión antigua Old version, still maintained Última versión Latest preview version Future release |
El proyecto Apache HTTP Server es un esfuerzo de desarrollo de software colaborativo cuyo objetivo es crear una implementación de código fuente de un servidor HTTP (Web) robusta, de calidad comercial, rica en funciones y de libre acceso. El proyecto está gestionado de forma conjunta por un grupo de voluntarios ubicados en todo el mundo, que utilizan Internet y la Web para comunicarse, planificar y desarrollar el servidor y su documentación relacionada. Este proyecto forma parte de la Apache Software Foundation . Además, cientos de usuarios han contribuido con ideas, código y documentación al proyecto. [64] [65] [66]
Apache 2.4 abandonó el soporte para las plataformas BeOS , TPF , A/UX , NeXT y Tandem . [8]
This section's factual accuracy is disputed. (January 2021) |
Apache, al igual que otros programas de servidor, puede ser hackeado 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 de conexión") para que el servidor sepa 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 el daño causado; los módulos Apache mod_limitipconn, mod_qos , mod_evasive, mod security , mod_noloris y mod_antiloris han sido sugeridos 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 compatible con los desarrolladores. [70]
Se ha eliminado la compatibilidad con plataformas como BeOS, TPF e incluso plataformas más antiguas como A/UX, Next y Tandem. Se creía que ya no funcionaban.
{{cite web}}
: CS1 maint: unfit URL (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link)