Está en la página 1de 17

Introducción a Apache

[5.1] ¿Cómo estudiar este tema?

[5.2] ¿Qué es Apache?

[5.3] Principales ventajas de Apache

[5.4] Características principales de Apache

[5.5] Arquitectura

[5.6] Referencias

5
TEMA
Administración de Servidores Web

Esquema

TEMA 5 – Esquema © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Ideas clave

5.1. ¿Cómo estudiar este tema?

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.

También te recomendamos realizar las actividades y leer las lecturas recomendadas


para que amplíes tus conocimientos con el objetivo de que puedas ver y comprobar las
grandes ventajas que ofrece este servidor web en cuanto a funcionalidad, seguridad y
servicios ofrecidos.

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.

5.2. ¿Que es Apache?

El servidor HTTP Apache2 es un servidor web multiplataforma, de software


libre y de código abierto. Este servidor web ha sido desarrollado por la Apache
Software Foundation (ASF).

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

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

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.

Como se muestra en la referencia 1, la primera versión que aparece de Apache es la


0.6 en Abril de 1995, que tomó como punto de partida la versión httpd 1.3 de
NCSA. El proyecto evolucionó muy rápidamente y en él también colaboraron
desarrolladores de NCSA. La versión 1.0 apareció en diciembre de 1995. Y en un año
pasó a ser el servidor web más utilizado en Internet a nivel mundial. En 1998 se llegó a
un acuerdo con IBM que permitió que Apache funcionara también en plataformas
Windows convirtiéndose así en una alternativa al servidor IIS (Internet Information
Server). La última y mayor versión estable de Apache es la 2.4.12 (Enero 2015).

5.3. Principales ventajas de Apache

La principal característica y ventaja de Apache es que es un servidor web altamente


configurable con un diseño muy modular, de manera que sus capacidades se
pueden extender enormemente con la creación de módulos con funciones concretas.
Esta orientación permite al servidor ser personalizado de forma muy precisa, instalado
o desinstalando servicios a demanda de los usuarios del mismo, y que de esta forma
sólo estén en marcha aquellas funcionalidades realmente necesarias. En temas
anteriores se ha comentado que el enfoque modular tiene principalmente dos
ventajas:

Un menor consumo de recursos general, al poder desactivar todo lo que no


sea necesario con un «grano» muy fino.
También disminuir la probabilidad de ataques, al reducir la cantidad de
servicios en marcha que se deben mantener.

La bondad de esta arquitectura es evidente, y las versiones de IIS7 y posteriores han


sido rediseñadas para seguir aún más esta aproximación que su predecesor. Apache 2
presenta un nivel mayor de modularidad que IIS 6.

Como resultado de esta aproximación, en Apache 2 existen infinidad de módulos


disponibles, todos ellos denominados mod_XXX, donde el nombre XXX designa el
tipo de funcionalidad que está pensado que desempeñen. Ejemplos son mod_perl,
mod_php, etc. El propósito de estos módulos es muy dispar y no es posible verlos

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

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.

La existencia de tantos módulos dota a Apache de la capacidad de desempeñar


prácticamente cualquier función que se pueda necesitar. No obstante, como se ha
indicado, solo debe instalarse aquello que realmente vaya a usarse. Si se usa mal la
capacidad de modularización de Apache, se perderán todas sus ventajas y se puede
ocasionar múltiples problemas.

Otras ventajas de este servidor son:

Apache es gratuito y de código abierto, a diferencia de IIS.


Trabaja de forma muy eficiente con Perl (mod_perl) y PHP (mod_php),
entre otros lenguajes.
Disponible para multitud de sistemas operativos (Linux, Unix, FreeBSD,
Solaris, Mac OS X, Windows,...), a diferencia de IIS. Apache es el servidor web
mayoritariamente usado en entornos Linux, pero también se puede usar en
sistemas operativos Windows. Además, es una opción perfectamente válida a IIS
en entornos Windows Server, aunque en estos casos hay que considerar el nivel de
integración que ha logrado IIS con diversas partes del sistema operativo, algo en lo
que puede aventajar a Apache en este caso concreto.
A partir de la versión Apache 2.2.22 se mejora el soporte para Windows
en comparación con las versiones anteriores, aumentando en gran medida
su eficiencia bajo este sistema operativo.

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.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Novedades en Apache HTTP Server 2.4


Apache ha ido mejorando con el tiempo. En cada versión de Apache se incluye nuevas
características y mejoras. La última versión de Apache es la 2.4 y en el siguiente enlace
se presentan las principales novedades que incluye esta versión respecto de su
antecesor: http://httpd.apache.org/docs/trunk/new_features_2_4.html

5.4. Características principales de Apache

A continuación se van a enumerar las principales características del servidor web


Apache, algunas de las cuales ya se han mencionado anteriormente. Muchas de ellas
serán vistas con mayor profundidad más adelante:

Multiplataforma: multitud de sistemas operativos tienen una versión disponible,


a diferencia de IIS.

Gestión avanzada de indexación y alias de directorios.

Negociación avanzada de los contenidos que gestiona el servidor: se


permite manipular los mismos antes o después de servirlos, prohibir determinados
tipos de contenidos, etc.

Sistema de notificación de errores HTTP altamente configurable.

Ejecución SetUID de programas CGI: ejecutar los programas bajo la identidad


del usuario que se desee, permitiendo así un mayor nivel de seguridad.

Manejo de recursos avanzado para procesos hijo que sirven peticiones.


Varios módulos de multiprocesamiento o MPM permiten adaptar el
funcionamiento interno de Apache a las características de un sistema operativo o
una necesidad concreta.

Ocultación avanzada de la estructura física de las webs procesadas,


mediante URL rewriting, usando mod_rewrite: Un modulo complejo de Apache
que permite manipular a nuestro antojo la URL de una web servida.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Posibilidad de chequeo avanzado de sintaxis de la URL, incluyendo


caracteres espurios que son fuentes frecuentes de ataques como SQL Injection,
Command Injection, XSS, etc.

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.

Configuración simple y potente a través de ficheros: De forma estándar no


se podrá encontrar una GUI de administración, aunque sí que existen algunas
soluciones de terceros (http://www.webmin.com). El fichero de configuración
principal es httpd.conf o apache2.conf según el sistema operativo. Es un
fichero de texto con un formato sencillo y determinado.

Servidor web flexible, pudiendo mover partes de la configuración de Apache a


diversos ficheros. Por ejemplo, se puede aislar la configuración de cada host virtual
(cada web servida por Apache) en un archivo independiente para cada una, o bien
distribuir la configuración de diferentes localizaciones físicas a ficheros
independientes más pequeños y fáciles de manejar que se encuentren directamente
en dichas localizaciones. No es necesario pues concentrar toda la configuración en
un solo archivo de gran tamaño. De esta forma se evita que el fichero de
configuración principal apache2.conf alcance un tamaño demasiado grande y por
tanto sea más complejo de manejar.

El término Virtual Host se refiere a la capacidad de simular la existencia de


mantener más de un servidor en una misma máquina, cada uno sirviendo una web
diferente, diferenciada por su nombre de host o IP.

Soporte avanzado de programas CGI (Common Gateway Interface): a


través de los módulos mod_cgi y mod_cgid.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Soporte de FastCGI: con mod_fcgi se puede crear un entorno FastCGI dentro de


Apache y aumentar el rendimiento de estas aplicaciones.

Soporte para autenticación HTTP: incluyendo autenticación Digest y Basic.


Mediante módulos adicionales pueden implementarse autenticaciones que empleen
bases de datos, ficheros, sentencias SQL o llamadas a programas externos sobre un
mismo servido.

Servidor proxy integrado: Apache se puede convertir en un caching (forward)


proxy server. Un forward proxy es un servidor intermedio que se sitúa entre el
cliente y el servidor que tiene los contenidos.

Manejo de Log: Apache da una gran flexibilidad para configurar los logs y ver el
status actual del servidor remotamente, con un navegador.

Soporte de Server-SideIncludes (SSI): aumenta la flexibilidad del


desarrollador web al permitir reutilizar código.

Soporte para Secured Socket Layer (SSL): gracias a implementaciones como


OpenSSL y el módulo mod_ssl.

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.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Módulos de Multiprocesamiento (MPM)

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:

El MPM prefork. Copia el modelo de Apache 1.X, creando un pool de procesos


hijos para servir peticiones. Cada proceso hijo tiene un sólo thread, por lo que si
Apache inicia 20 procesos hijos, puede servir 20 peticiones simultáneamente. En el
caso de que ocurra un error grave y un proceso hijo muera, sólo se pierde una
petición: la que está atendiendo el hijo que acaba de cesar la actividad. Finalmente,
cabe decir que el máximo y el mínimo de procesos hijos son parámetros
configurables, permitiendo pues adaptar Apache a las capacidades de la máquina
servidora y también fijarle un máximo de carga. Dentro de estos parámetros máximo
y mínimo el servidor genera más o menos procesos en función de la carga de trabajo
actual.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

El MPM worker. Permite a Apache soportar hilos, lo cual es más eficiente en


determinados SSOO. El modelo en sí es idéntico al anterior, aunque cada proceso
hijo tiene un número predefinido de threads y cada thread puede servir una petición
diferente. De este modo, si tenemos 30 procesos hijos x 10 threads / proceso el
servidor podrá servir teóricamente hasta 300 peticiones simultaneas. Es por tanto
un modelo muy escalable. En lo referente a procesos, cabe decir que éstos mueren o
se crean en función del número de threads activos o libres que haya en un momento
dado.

El MPM por hijo. En este módulo de multiprocesamiento se inicia un conjunto de


procesos hijos con un número especificado de hilos. Las sucesivas peticiones
incrementan el número de hilos según sea necesario, ocurriendo también lo
contrario si el número de peticiones disminuye. Existe además un valor máximo y
mínimo, de forma que el número de hilos siempre oscilará entre ambos.

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.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Módulos de MultiProcesamiento (MPMs)


El servidor Apache viene con una serie de Módulos de MultiProcesamiento que son
responsables de conectar con los puertos de red de la máquina, aceptar las peticiones, y
generar los procesos hijo que se encargan de servirlas. Al instalar Apache se selecciona
teóricamente el mejor MPM para el SO destino, y por ello es raro que se necesite
cambiarlo, aunque es posible hacerlo en caso necesario. En el siguiente enlace se ofrece
más información general sobre MPMs en Apache 2.4:
http://httpd.apache.org/docs/2.4/es/mpm.html

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].

Actualmente, vienen con la distribución de Apache los siguientes filtros seleccionables


por el usuario:

INCLUDES: Server-Side Includes procesado por mod_include.


DEFLATE: comprime los datos de salida antes de enviarlos al cliente usando el
módulo mod_deflate.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Además, el módulo mod_ext_filter permite definir programas externos como


filtros.

5.6. Referencias

A. S. Foundation (2015). Apache HTTP Server Documentation. Disponible en:


http://httpd.apache.org/docs/

Ford, A. (2013). Apache 2 pocket reference. California: O’Relly.

Mifsuf, E. (2012). Apache. España: Ministerio de Educación de España.

Rizzo, J. (2011). Mac os x lion server for dummies. Canadá: John Wiley & Sons, Inc.

TEMA 5 – Ideas clave © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Lo + recomendado

No dejes de leer…

Apache

Mifsuf Talón, E. (2012). Apache. Ministerio de Educación de España. ISBN:


9788436954432.

En este libro se habla sobre los conceptos generales del servidor


web Apache, así como de la configuración y administración del
mismo, tanto en entornos Windows como GNU/Linux Ubuntu.
Para este tema es de utilidad la Unidad 1: (páginas 9-14). Esta
parte te dará una visión general de que es el servidor web Apache,
sus orígenes, licencia bajo la cual se distribuye y las principales
ventajas que hacen que sea el servidor web más usado del mercado.

Accede a este libro a través de la Biblioteca Virtual de UNIR.

TEMA 5 – Lo + recomendado © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

No dejes de ver…

What's New in Apache httpd 2.4

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

TEMA 5 – Lo + recomendado © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

+ Información

Enlaces relacionados

Apache HTTP Server Project

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.

Accede a la web a través del aula virtual o desde la siguiente dirección:


http://httpd.apache.org/

TEMA 5 – + Información © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

Test

1. Es un servidor web multiplataforma, de software libre y de código abierto.


A. Apache.
B. Internet Information Services.
C. Google Web Server.
D. SUN Web Server.

2. Apache se puede instalar en múltiples sistemas operativos, porque es un servidor


web:
A. Modular.
B. Software Libre.
C. Multiplataforma.
D. De Código Abierto.

3. Son módulos que permiten adaptar el funcionamiento interno de Apache a las


características del sistema operativo donde se instale.
A. Módulos de Filtrado.
B. Módulos de Reescritura.
C. Módulos de procesos.
D. Módulos de multiprocesamiento o MPM.

4. Apache dispone de un gran número de módulos que amplían su funcionalidad, esto


significa que es un servidor web:
A. Multiplataforma.
B. Extensible.
C. Inflexible.
D. Robusto.

5. Se refiere a la capacidad de simular la existencia de mantener más de un servidor en


una misma máquina, cada uno sirviendo una web diferente, diferenciada por su
nombre de host o IP.
A. Hosting
B. Virtual Host
C. Servidor virtual
D. Configuración de Host

TEMA 5 – Test © Universidad Internacional de La Rioja (UNIR)


Administración de Servidores Web

6. Según el sistema operativo donde se instale Apache, el fichero de configuración


principal puede ser:
A. httpd.conf
B. apache2.conf
C. setting.conf
D. A y B son correcta

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

8. Es una forma de autenticación soportadas por Apache:


A. Autenticación Digest.
B. Autenticación Basic.
C. A y B son correctas.
D. A y B son incorrectas.

9. Es el módulo en Apache que permite comprimir los datos de salida antes de


enviarlos al cliente
A. Módulo mod_deflate.
B. Módulo mod_include.
C. Módulo mod_zip.
D. Módulo mod_rewrite.

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.

TEMA 5 – Test © Universidad Internacional de La Rioja (UNIR)

También podría gustarte