Red de Respuestas Legales - Conocimientos legales - Presenta en detalle qué es el servidor Apache.

Presenta en detalle qué es el servidor Apache.

Apache es un servidor HTTP de código abierto que se ejecuta en la mayoría de los sistemas operativos de computadoras. Debido a su naturaleza y seguridad multiplataforma (Nota 1), es ampliamente utilizado y actualmente es uno de los software del lado del servidor web más populares. Es rápido, confiable y extensible a través de una API simple, y se pueden compilar intérpretes como Perl/Python en el servidor.

Historia

Apache fue desarrollado originalmente por el Centro Nacional de Computación Avanzada de la Universidad de Illinois en Urbana-Champaign. Desde entonces, Apache ha sido desarrollado y mejorado continuamente por miembros de la comunidad de código abierto. Los servidores Apache tienen fama de ser fiables y dignos de confianza, y se utilizan en más de la mitad de los sitios web de Internet, especialmente en casi todos los sitios más populares y visitados.

Al principio, Apache era sólo una alternativa de código abierto al servidor web Netscape (ahora Sun ONE). Poco a poco empezó a mejorar en funcionalidad y velocidad. Supera a otros servidores HTTP basados ​​en Unix. Apache ha sido el servidor HTTP más popular en Internet desde abril de 1996: en mayo de 1999 se ejecutaba en el 57% de los servidores web; en julio de 2005, esta proporción había aumentado al 69%;

El autor afirma que el nombre fue elegido originalmente porque era fácil de recordar, pero la explicación más popular es que el nombre surgió de modificar el código de NCSA HTTPd 1.3, el servidor HTTP más popular en ese momento. , cuando desarrolló Apache a principios de 1995. Por lo tanto, es "un mosaico" de servidores. Pero las preguntas frecuentes en el sitio web del órgano de servicio lo explican de esta manera: "El nombre 'Apache' es para conmemorar una rama de los indios americanos llamada Apache (hindi), que son conocidos por tener excelentes estrategias de combate y ser pacientes sin fin". La rama Apache 2.x no contiene ningún código NCSA.

Características

Apache admite muchas características, la mayoría de las cuales se implementan a través de módulos compilados. Estas características van desde compatibilidad con lenguajes de programación del lado del servidor hasta esquemas de autenticación. Algunas interfaces de lenguajes comunes admiten Perl, Python, Tcl y PHP. Los módulos de autenticación comunes incluyen mod_access, mod_auth y mod_digest. Otros ejemplos son compatibilidad con SSL y TLS (mod_ssl), módulos proxy, reescritura de URL útil (implementada por mod_rewrite), archivos de registro personalizados (mod_log_config) y compatibilidad con filtrado (mod_include y mod_ext_filter). Los registros de Apache se pueden analizar a través de un navegador web utilizando los scripts gratuitos AWStats o Visitantes.

Versión 2.x

La versión 2.x de Apache ha realizado importantes mejoras con respecto a la versión 1.x de Apache. Esto incluye: subprocesos, mejor soporte para plataformas que no son UNIX como Windows, nuevas API de Apache y soporte para IPv6.

Evaluación

En agosto de 2004, "PC Magazine" seleccionó los 10 mejores productos de software de los últimos 30 años. Algunos de ellos tienen la historia más gloriosa o son los más creativos. Su evaluación de Apache es: Tercer lugar: Apache (Apache, introducido en 1995) Apache ahora ha evolucionado hasta convertirse en un "ligero", que es una combinación de Linux, Apache, MySQL y PHP. Se trata de un proyecto de software de código abierto que ha supuesto una grave amenaza para la estrategia ".NET" de Microsoft. En particular, el servidor web Apache permite a los usuarios experimentar plenamente la estabilidad, confiabilidad y personalización del software de código fuente en desarrollo.

Cuando Apple.com revisó Apache, dijo: Apache es una parte importante del software de servidor en constante evolución. Es gratis, pero no tiene precio. Apache es un tesoro absoluto en el movimiento de recursos abiertos porque no es una patente personal sino que es gratuito para el público.

Una vez que tenga el código fuente, los programadores son libres de hacer lo que quieran, y cuando otros programadores se hagan cargo de su trabajo, se les podrán otorgar los mismos derechos para cambiar y modificar su propio código fuente.

Anotar...

Aunque constantemente se descubren nuevas vulnerabilidades, siempre se pueden solucionar rápidamente debido a su naturaleza de código abierto. En general, su seguridad es bastante alta.

()[# página _ #][# página _ #]AddHandler CGI-script. Imagen generada por computadora

Servidor AddHandler resuelto. shtml

Script cgi Sethandler

AddHandler define qué extensión se describe mediante qué cadena.

Todos los archivos en el directorio especificado por SetHandler se describen mediante esta cadena.

Los comandos que menciono aquí están muy relacionados con su estructura. La relación entre controladores y tipos se describe a continuación. Muchas cosas no se pueden ver con claridad desde fuera. A continuación, lo miramos desde dentro.

Estructura básica del programa

-

Apache es muy multiplataforma. Para lograr este objetivo y simplificar la carga de los escritores de módulos, Apache completa muchas funciones básicas, como IO y asignación de memoria, que son independientes de la plataforma específica. También hay algunas rutinas útiles como Hashtable y Array. En todo el sistema, Apache tiene como punto básico utilizar estructuras y algoritmos simples tanto como sea posible, lo que no solo es fácil de entender y mantener, sino que también mejora su estabilidad.

En sistemas UNIX, Apache utiliza un modelo multiproceso y un modelo multiproceso en Windows. En un modelo multiproceso, los subprocesos manejan las solicitudes de los clientes y el proceso principal gestiona los subprocesos. Cuando el sistema está sobrecargado, el proceso principal iniciará varios procesos secundarios. Cuando el sistema está inactivo, el proceso principal elimina varios procesos secundarios. El número de procesos secundarios está entre "MinSpareServers" y "MaxSpareServers". Además, cada proceso hijo maneja una cantidad limitada de solicitudes, lo que puede resolver problemas como pérdidas de memoria. Todo el estado del proceso se registra en la memoria compartida. Dado que el estado de cada proceso se registra en una pequeña parte de la memoria y, por lo general, solo se lee y escribe esta parte de la memoria, Apache no utiliza ningún mecanismo de sincronización.

Apache utiliza varios modelos de servidor multiproceso mencionados en el libro de Richard Steve y elige utilizar diferentes métodos en diferentes sistemas según sus características:

Aceptar:

Bloquear la aceptación solo es posible cuando la aceptación se implementa a nivel del kernel.

2. Selección:

Bloqueado durante la selección.

3. Archivo Mutex/lock:

Utilice mutex o lock_file para excluir mutuamente la aceptación.

Los tres métodos requieren blindaje, pero la diferencia es que el blindaje es diferente. Los dos primeros métodos causarán el llamado problema del grupo gigante: múltiples procesos bloqueados en el mismo recurso se activan al mismo tiempo, lo que provoca una renovada competencia. Pero según la evaluación de Richard Steve, el primer método es el más rápido, el segundo es el segundo y el tercero es el más lento. De hecho, el tercer método también causará grandes problemas grupales en Linux.

Aunque Apache no enfatiza el rendimiento, eso no significa que no le presten atención. Por el contrario, Apache cree que es confiable en el lado del servidor, pero el rendimiento de Apache sigue siendo bueno.