Apache es el Servidor Web más utilizado, líder con el mayor número de instalaciones a nivel mundial muy por delante de otras soluciones como el IIS (Internet Information Server) de Microsoft. Apache es un proyecto de código abierto y uso gratuito, multiplataforma (hay versiones para todos los sistemas operativos más importantes), muy robusto y que destaca por su seguridad y rendimiento.

Ahora bien,se puede estar preguntando alguien, ¿qué es un Servidor Web y qué hace exactamente?

Bueno, lo primero que debemos aclarar es que estamos hablando de software, aunque el equipo donde se ejecuta recibe la misma denominación. Su misión es crítica, ya que es el encargado de aceptar las peticiones de páginas (o recursos en general) que provienen de los visitantes que acceden a nuestro sitio web y gestionar su entrega o denegación, de acuerdo a las políticas de seguridad establecidas. Esto, que puede parecer simple, implica muchas facetas y funcionalidades que debe cubrir, como pueden ser:

  • Atender de manera eficiente, ya que puede recibir un gran número de peticiones HTTP, incluyendo una ejecución multitarea ya que pueden darse peticiones simultáneas. Cualquier petición compleja (por ejemplo con acceso a base de datos) dejaría colapsado el servicio.
  • Restricciones de acceso a los ficheros que no se quieran ‘exponer’, gestión de autentificaciones de usuarios o filtrado de peticiones según el origen de éstas.
  • Manejar los errores por páginas no encontradas, informando al visitante y/o redirigiendo a páginas predeterminadas.
  • Gestión de la información a transmitir en función de su formato e informar adecuadamente al navegador que está solicitando dicho recurso.
  • Gestión de logs, es decir almacenar las peticiones recibidas, errores que se han producido y en general toda aquella información que puede ser registrada y analizada posteriormente para obtener las estadísticas de acceso al sitio web.

Además, Apache nos permite configurar un Hosting Virtual basado en IPs o en nombres, es decir, tener varios sitios web en un mismo equipo (por ejemplo: nombreweb1.com, nombreweb2.com,….) o como indicábamos, establecer distintos niveles de control de acceso a la información incluyendo el soporte a cifrado SSL utilizando protocolo seguro HTTPS.

A continuación, para los que quieran tener una visión más en detalle de cómo se trabaja con Apache, reproducimos la explicación del fichero de configuración de Apache 2 de nuestro curso Servidor Web Apache, elaborado por Franciso Illeras. Este apartado, junto a otros dos, los podéis  descargar en el extracto del curso que hemos publicado en nuestra sección de Tutoriales, para que podáis tener una mejor idea del mismo.

Archivo “apache2.conf”

(apartado del Tema “Configuración y ajuste del servidor Apache”)

Sin lugar a dudas, “apache2.conf” es el fichero más importante de Apache, puesto que en él se definirá el comportamiento general del servidor de páginas web y además, es el encargado de acceder a los distintos módulos que amplían la funcionalidad del servidor.

Como ya hemos comentado, el archivo “apache2.conf” se encuentra en el directorio “/etc/apache2”, y al tratarse de un fichero de texto podrá editarlo fácilmente (por ejemplo, con nuestro editor preferido “joe”).

Dentro del archivo de configuración encontraremos dos partes bien diferenciadas:

1) Variables globales del servidor: variables que definen el funcionamiento general del servidor. Las más importantes son (siempre podrá completar la información que le suministro con la que posee en la propia web de Apache, el lugar donde encontrará la documentación es “http://httpd.apache.org/docs/2.0/es/”):

Tabla directivas Apache

En este momento solo tiene que preocuparte que el nombre de nuestro servidor esté bien indicado mediante la variable “ServerName” para que cualquier redirección o referencia existente en nuestros documentos HTML funcionen bien. Y el resto de las variables no tendrán que tocarse puesto que por defecto vienen con los valores adecuados, salvo la parte correspondiente a “AccessFileName”. Lo explicaremos de una manera más detallada.A la vista de la tabla anterior parecería que Apache es un servidor que no es muy complejo de configurar, porque no posee muchas opciones. Es cierto en parte, aunque éstas son solo una pequeña parte de las opciones que posee Apache, ya que mayoría de las variables de configuración se encuentra repartida entre otros pequeños ficheros de configuración (módulos) guardados en “mods-available” (pero esto lo veremos más adelante).

.htaccess es un archivo de texto oculto (por esa razón comienza por “.”) que permite personalizar el funcionamiento del servidor Apache un directorio concreto sin necesidad de modificar el fichero de configuración principal “apache2.conf”.

Cuando un cliente web solicita un archivo al servidor, este busca desde el directorio raíz hasta el subdirectorio que contiene el archivo solicitado el archivo .htaccess y tiene en cuenta las directivas contenidas en el mismo antes de proceder con la petición.

Los usos principales del .htaccess son:

  • Impedir el listado de los archivos de un directorio.
  • Redireccionar el tráfico Web.
  • Personalizar las páginas de error.
  • Restringir el acceso a determinados archivos.
  • Impedir el acceso a determinadas IPs o rangos de IP.

En el apartado de comunicaciones seguras de este mismo tema lo veremos con más detenimiento.

2) Ampliación de funcionalidades: relacionado con las llamadas a otros módulos y archivos de configuración. Todas las directivas relacionadas con este punto vendrán precedidas por la palabra “Include”.

Tabla directivas Apache

Si aún no te has hecho una idea mental de cómo esta conformado el servidor Apache, la siguiente imagen te ayudará.

configuración Apache

Ilustración 1: Estructura del servidor Apache2.

 

Hasta ahora has aprendido que el archivo de configuración principal de Apache 2 se llama “apache2.conf” y se encuentra en el directorio “/etc/apache2”. Ya sabes como indicar el nombre del servidor, que el usuario y grupo con el que se ejecuta el servidor Apache se llama www-data, y que se cargarán todos los módulos que se encuentren almacenados en los directorios de configuración “mods-enabled” y “sites-enabled”.

¿Qué hace un Servidor Web como Apache?. Configuración
Etiquetado en: