Documentos de Académico
Documentos de Profesional
Documentos de Cultura
[5.5] Arquitectura
[5.6] Referencias
5
TEMA
Administración de Servidores Web
Esquema
Ideas clave
Para estudiar este tema deberás leer el contenido incluido en las Ideas clave
expuestas a continuación. Este tema te ofrece una visión general de que es el servidor
web Apache, cuáles son la principales características y ventajas que hacen que sea el
servidor web más usado del mercado.
En este tema conoceremos que es el servidor web Apache, cuáles son sus ventajas y
principales características, así como también cuál es su arquitectura y la diversidad de
funcionalidades que ofrece. A nivel general conoceremos los siguientes apartados:
¿Qué es Apache?
Principales ventajas de Apache.
Características principales de Apache.
Arquitectura de Apache.
Actualmente, Apache es el servidor web más utilizado a nivel mundial, estando por
delante de otras soluciones como el IIS de Microsoft. Este liderazgo se sustenta en sus
mejores prestaciones: potencia, fiabilidad, seguridad, además de ser
multiplataforma, los que permite que se ejecute en los sistemas operativos más
importantes. Apache es uno de los proyectos de código abierto más destacado y ejemplo
de la calidad y solidez que puede ofrecer el software libre.
todos durante este curso, dada la cantidad de ellos existente, aunque si se verán un
número representativo de los mismos que cubran las funciones más importantes.
El objetivo de este tema no es comparar Apache e IIS y decidir cuál es el mejor, ya que
esta comparación es muy difícil, sino imposible de realizar. La elección de uno u otro
debe responder a criterios como el sistema operativo y versión usados, funcionalidades
a implementar, lenguajes de programación a usar en las webs que se sirvan (algunos
lenguajes están muy vinculados al uso de un servidor concreto), la naturaleza de la
propia aplicación a implementar o bien el framework de desarrollo empleado para
ellas. El servidor debe ser elegido en función de las aplicaciones que vayamos a servir y
nunca debe ser hecho al revés.
Soporte para HTTP 1.1: esta versión de HTTP permite a un browser mandar
varias peticiones en paralelo a un servidor. Esta versión también está soportada por
IIS y además hay que tener en cuenta lo siguiente:
o No se transmiten todas las cabeceras en cada una de las peticiones.
o Con HTTP 1.0, un browser debía esperar por la respuesta del servidor a una
petición antes de mandar otra.
o HTTP 1.1 supone pues una ventaja de rendimiento, tanto por la economización
a la hora de mandar información como por el hecho de no tener que soportar
tantas esperas.
Manejo de Log: Apache da una gran flexibilidad para configurar los logs y ver el
status actual del servidor remotamente, con un navegador.
Estas son algunas de las principales características del servidor web Apache que los
convierte en un servidor web robusto, seguro y altamente configurable.
5.5. Arquitectura
La versión 2.x hace a Apache más flexible, más portable y más escalable. En esta
sección se detallará solamente los aspectos de dos de las más importantes, ya que en la
sección anterior se han mencionado las principales características y novedades:
Módulos de Multiprocesamiento.
Filtrado de E/S.
Los MPM son uno de los mayores cambios de las versiones 2.X respecto a las
anteriores. Básicamente son formas de procesar las peticiones que Apache puede
usar, y normalmente suele elegirse la más ventajosa teniendo en cuenta el sistema
operativo donde Apache está funcionando u otros factores de las aplicaciones web que
van a funcionar sobre este servidor. A continuación, se describen brevemente los MPM
disponibles hasta el momento y sus características.
Apache versión 1.x usaba únicamente una arquitectura preforking para atender las
peticiones. Ésta consistía en que un proceso padre hacia fork para generar un conjunto
de procesos hijos, que eran los que finalmente servían las peticiones. El proceso padre
monitorizaba a sus hijos y creaba más, o los destruía, basándose en la cantidad de
peticiones que recibía, regulando así la carga de trabajo en función del número de
peticiones recibido en un momento dado. No obstante, este modelo tenía el
inconveniente de que no funcionaba adecuadamente (por su bajo rendimiento) en
algunas plataformas. Una de ellas era Windows, al no tener implementado nativamente
este modelo de procesos. Por ese motivo, se creó el concepto de MPM, que está
destinado a solventar este problema.
Por tanto, cada MPM es responsable de arrancar procesos del servidor y de servir
peticiones usando procesos hijos o threads, según su implementación. A continuación
se citan algunos de los MPM más importantes disponibles:
Por otro lado, el número de procesos es estático y cada uno puede ejecutarse usando
un ID de usuario y grupo distinto. Esto permite ejecutar varios sitios web virtuales
bajo distintas identidades de forma segura.
El MPM WinNT. Este MPM es especial para la plataforma Windows (NT, 2000,
2003, 2008,...). Es un módulo multihilo donde Apache creará un proceso padre y
uno hijo, que es el encargado de crear todos los hilos que sirven las peticiones.
Además, este modelo usa algunas funciones nativas de Windows, aumentando el
rendimiento de Apache sobre esta plataforma.
El MPM event. Este MPM es una variante del MPM worker, y ha sido diseñado
para servir más peticiones simultáneas. Su funcionamiento se basa en pasar una
porción determinada del procesamiento de una petición a hilos de soporte
secundarios que se encargarán de tratarla. Esto permite liberar los threads
principales para que acepten nuevas peticiones, ya que ellos delegan el volumen
principal del procesamiento en entidades de proceso auxiliares. La configuración de
este MPM es idéntica a la del MPM en el que se basa.
Filtrado de E/S
Apache 2.0.x posee una arquitectura de E/S multicapa. Como en Java, la salida de
un módulo puede ser la entrada de otro, es decir, que por ejemplo la salida producida
por un script CGI (mod_cgi) puede ser enviada a otro módulo para su procesamiento
antes de ser enviado al browser.
Encadenando este efecto, pueden lograrse resultados muy interesantes y más potencia
a la hora de manipular la información que se maneja, a la vez de conseguir un mayor
nivel de flexibilidad.
Un filtro es un proceso que se aplica a los datos que se reciben o se envían por el
servidor. Los datos enviados por los clientes al servidor son procesados por filtros de
entrada mientras que los datos enviados por el servidor se procesan por los filtros de
salida. A los datos se les pueden aplicar varios filtros, y el orden en que se aplica cada
filtro puede especificarse explícitamente. Los filtros se usan internamente por Apache
para llevar a cabo funciones tales como chunking y servir peticiones de byte-range.
Además, los módulos contienen filtros que se pueden seleccionar usando directivas de
configuración al iniciar el servidor [referencia 2].
5.6. Referencias
Rizzo, J. (2011). Mac os x lion server for dummies. Canadá: John Wiley & Sons, Inc.
Lo + recomendado
No dejes de leer…
Apache
No dejes de ver…
La versión 2.4 del servidor web Apache incluye muchas cosas que los usuarios y
administradores del servidor han estado pidiendo hace muchos años, incluyendo la
configuración de secuencias de comandos, la sintaxis de control de acceso más flexible,
balanceo de carga más simple, un rendimiento mejorado y mucho más. En este video
Rich Bowen ofrece una interesante conferencia sobre las últimas novedades del
servidor web Apache.
Accede al video a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=T5dIQEKSZZM
+ Información
Enlaces relacionados
Página web oficial del proyecto del servidor web Apache, donde se puede encontrar
toda la información relacionada a las distintas versiones de este servidor web. El
objetivo de este proyecto es proporcionar un servidor web seguro, eficiente y extensible
que proporciona servicios HTTP en sincronización con los estándares HTTP actuales.
Test
7. Apache es software libre que se publica bajo la licencia GPL (General Public Licence),
esto significa que cualquiera que lo use debe cumplir el siguiente requisito:
A. Poder ejecutarlo con cualquier propósito.
B. Poder copiarlo y distribuirlo.
C. Poder modificarlo para que se adapte a necesidades propias o las de un tercero.
D. Todas las anteriores son correctas
10. Es una de las principales ventajas que ofrece el servidor web Apache:
A. Arquitectura modular y extensible.
B. Seguridad limitada.
C. Solo se puede ejecutar en sistemas operativos Linux.
D. Gestiona con eficiencia solo aplicaciones desarrolladas con .php.