Presentación de una novedad Servidor HTTP Apache 2.0 Jesús Moreno León Alberto Molina Coballes Redes de Área Local Noviembre 2009 Apache ● Servidor web de la Apache Foundation ● ¿Por qué Apache? ● ● ● ● A patchy server – NCSA HTTPd 1.3 Filosofía de desarrollo y organización basada en méritos personales Software Libre (Apache Software License) disponible para todos los sabores de Unix, Windows Y Mac OS Es la base del conjunto de aplicaciones LAMP Netcraft web server survey Instalación aptitude install apache2 ● Instala las librerías, ejecutables, directorios y ficheros de configuración necesarios Documentación http://httpd.apache.org/docs/2.0/ Arranque ● Se puede iniciar y detener como cualquier demonio /etc/init.d/apache2 [stop|start|reload] ● También puede hacerse con apache2ctl, que incluye funcionalidad adicional Ficheros por defecto ● Configuración /etc/apache2/apache2.conf ● Raíz de documentos /var/www ● Logs /var/log/apache2/error.log /var/log/apache2/access.log Ficheros por defecto ● Definición de hosts virtuales /etc/apache2/sites-available ● Hosts activos /etc/apache2/sites-enabled Directivas de Apache ● La configuración de apache se hace mediante directivas, que pueden aparecer en diferentes contextos: Contexto server config ● Las directivas en este contexto afectan a todo el servidor. Se ubican en líneas de /etc/apache2/apache2.conf que no están dentro de ningún bloque ServerName localhost ServerRoot /etc/apache2 ErrorLog /var/log/apache2/error.log DocumentRoot /var/www MaxClients 150 Listen 80 Contexto Host Virtuales ● Las directivas dentro de un bloque VirtualHost afectan solo al host virtual <VirtualHost host [:puerto]> ... </VirtualHost host> Configuración de Host Virtuales ● Si para discriminar entre dos sitios hay que considerar el valor de la cabecera host de la petición HTTP, debe incluirse la directiva NameVirtualHost Fichero /etc/apache2/sites-available/basket NameVirtualHost *:80 <VirtualHost www.basket.com> ServerName www.basket.com DocumentRoot /var/www/basket ServerAdmin webmaster@basket.com </VirtualHost> Configuración de Host Virtuales Fichero /etc/apache2/sites-available/futbol NameVirtualHost *:80 <VirtualHost www.futbol.com> ServerName www.futbol.com DocumentRoot /var/www/futbol ServerAdmin webmaster@futbol.com </VirtualHost> Activar Host Virtuales Fichero /etc/apache2/sites-enabled 010-basket -> /etc/apache2/sites-available/basket 020-futbol -> /etc/apache2/sites-available/futbol Contexto Directory ● Las directivas dentro de un bloque Directory afectan solo a los ficheros de ese directorio y no al DocumentRoot completo <directory mi-directorio> ... </directory> ● ¡OJO! mi-directorio tiene que ser path absoluto, no relativo al DocumentRoot Contexto Directory ● Control de acceso: order, allow y deny Order Deny,Allow Allow from IP's permitidas Deny from all LISTA BLANCA Order Allow,Deny Deny from IP's denegadas Allow from all LISTA NEGRA Contexto Directory ● Por ejemplo, para permitir el acceso al directorio arbitros del sitio futbol a los usuarios de la red 193.147.71.0/24: <Directory /var/www/futbol/arbitros> order deny,allow allow from 193.147.71.0/255.255.255.0 deny all </Directory> Otras directivas ● Si el cliente no solicita un fichero, sino un directorio, se utiliza la siguiente directiva para indicar los ficheros que se buscarán: DirectoryIndex index.html index.htm index.php ● Existe una directiva un tanto peculiar, que permite activar o desactivar diferentes opciones, la directiva options: - All - None - Indexes - MultiViews - FollowSymLinks - SymLinksIfOwnerMatch Por ejemplo: options +Indexes -FollowSymLinks