Sie sind auf Seite 1von 5

Configuracin de Apache

Cuando se ha instalado el servidor, hay que configurarlo. Apache incluye por defecto una configuracin que arranca el servidor en el puerto TCP por defecto, que es el puerto 80, y sirve a los archivos del directorio que se ha especificado mediante la directiva de configuracin denominada DocumentRoot. Este archivo de configuracin de Apache es el httpd.conf, localizado en el subdirectorio "conf" dentro del directorio de instalacin. httpd.conf es un archivo de tipo ASCII que contiene las directivas de configuracin.

Estructura del archivo de configuracin httpd.conf


httpd.conf est compuesto por tres bloques fundamentales, aunque las directivas de cada uno de los bloque pueden aparecer desordenadas o mezcladas. Estos bloques son: Parmetros globales Directivas de funcionamiento Hosts virtuales

Algunos parmetros son propsito general, y otros son configurables de forma independiente para cada conjunto de directorios o de archivos o incluso para un servidor virtual especfico. En tales casos, estos parmetros se encuentran dentro de secciones en las que se indica el contexto de aplicacin de dicho parmetro. Las secciones fundamentales son:

<Directory>: Los parmetros que se encuentran dentro de la seccin Directory slo se aplican al directorio indicado y sus subdirectorios. <DirectoryMatch>: Igual que Directory, aunque acepta expresiones regulares en el nombre del directorio. <Files>: Los parmetros de configuracin facilitan control de acceso a los archivos mediante su nombre. <FilesMatch>: Igual que Files, pero acepta en el nombre del archivo expresiones regulares. <Location>: Proporciona control de acceso a los archivos mediante la URL. <LocationMatch>: Igual que Location, pero acepta en el nombre del archivo el uso de expresiones regulares. <VirtualHost>: Los parmetros slo se aplican a aquellas peticiones dirigidas a este host (nombre de servidor, direccin IP o puerto TCP). <Proxy>: Slo se aplican estos parmetros a aquellas peticiones de proxy (requiere que est instalado "mod proxy") coincidentes con la especificacin de URL. <ProxyMatch>: Igual que proxy, pero acepta en la URL indicada el uso de expresiones regulares. <IfDefine>: Slo se aplica si al arrancar el servidor existe un parmetro concreto definido en la lnea de comandos, mediante la opcin -D. <IfModule>: Se aplican los parmetros si el mdulo especificado se encuentra cargado (mediante LoadModule) en el momento de arrancar el servidor.

En caso de que exista conflicto entre diferentes especificaciones de parmetros, el orden de precedencia es:

1. 2. 3. 4.

<Directory> y .htaccess <DirectoryMatch> y <Directory> <Files> y <FilesMatch> <Location> y <LocationMatch>

-1-

En cuanto a <VirtualHost>, estas directivas se aplican siempre despus de las directivas generales. De este modo, un VirtualHost puede modificar la configuracin por defecto. Un ejemplo de configuracin: <Directory /home/*/public_html> Options Indexes </Directory> <FilesMatch \.(?i:gif jpe?g png)$> Order allow,deny Deny from all </FilesMatch>.

Directivas globales de configuracin


Algunas directivas de configuracin nunca se aplican a las secciones antes mencionadas (directorios, etc.), sino que afectan al conjunto del servidor web. Las ms destacables son:

ServerRoot: Especifica la localizacin del directorio raz en el que se encuentra instalado el servidor web. Partiendo de este directorio, se encuentran los archivos de configuracin, etc. Si la instalacin del servidor es correcta, no debera modificarse nunca. KeepAlive: Especifica si se deben utilizar conexiones persistentes para atender las peticiones de un mismo usuario mediante la misma conexin TCP. Listen: Especifica el puerto en que se atendern las peticiones. Por defecto el servidor "escucha" en el puerto 80 de TCP. Permite especificar las direcciones IP que se utilizarn (en caso de que el servidor tuviese ms de una). Por defecto se utilizarn todas las disponibles. LoadModule: Permite cargar en el servidor los mdulos adicionales de Apache. La sintaxis es: LoadModule modulo archivomodulo Se debe tener instalado mod_so para poder utilizarla.

Directivas principales
Hay algunas directivas que, generalmente, no suelen aparecer en las secciones anteriormente mencionadas sino que se encuentran en la seccin principal. Estas directivas son:

ServerAdmin: Especifica la direccin de correo electrnico del administrador. Esta direccin puede mostrarse en los mensajes de error a modo de direccin de contacto para que los usuarios notifiquen el error al administrador. No debe estar dentro de ninguna seccin. ServerName: Sirve para especificar el nombre y el puerto TCP que el Apache utiliza para identificarse. Se puede determinar de forma automtica, pero se recomienda especificarlo. Si el servidor no tuviera un nombre DNS, es recomendable incluir su direccin IP. No debe incluirse dentro de ninguna seccin. Su sintaxis es: ServerName nombredireccion:puerto como en: ServerName www.upc.edu:80 ServerName 192.168.1.1:80 DocumentRoot: Directorio raz desde el cual se servirn los documentos. Por defecto es "htdocs", dentro de la carpeta de instalacin de Apache. No debe aparecer dentro de ninguna seccin, a excepcin de la seccin VirtualHost. Le corresponde una seccin <Directory> en la cual se marcan los parmetros de configuracin de este directorio. DirectoryIndex: Especifica el archivo que Apache servir por defecto para cada directorio en caso de que no se especifique ningn archivo concreto en la URL de la peticin. Por defecto es "index.html". Es decir, si se solicita en la barra de direcciones del navegador: www.cibernet.com el servidor enviar por defecto

-2-

www.cibernet.com/index.html. Es posible especificar ms de un archivo y el orden con que se especifican los archivos determinar la prioridad para determinar cul se debe servir. Es posible encontrar la directiva fuera de cualquier seccin o dentro de alguna de ellas. AccessFileName: Determina el archivo de configuracin en caso de que ste no sea .htaccess. Para que esta configuracin cumpla su cometido, la directiva AllowOverride debe tener un valor adecuado. No puede estar incluida en ninguna seccin. El archivo por defecto es .htaccess. ErrorDocument: Esta directiva establece el comportamiento de Apache en caso de error. Existen 4 configuraciones distintas: Mostrar algn texto de error. Redireccin hacia un archivo en el mismo directorio. Redireccin hacia un archivo en nuestro servidor. Redireccin hacia un archivo fuera de nuestro servidor. La sintaxis es ErrorDocument cdigo_error accin. Es posible encontrar esta directiva tanto dentro de una seccin, como en la configuracin global. Por ejemplo: ErrorDocument 404 /noencont.html. En caso de que Apache no encuentre un archivo, se mostrar el archivo noencont.html. Alias: Las directivas Alias y AliasMatch permiten la definicin de accesos a directorios que estn fuera del DocumentRoot. Su sintaxis es: Alias url directorio Por ejemplo: Alias /docs /home/documentos har que una peticin a http://www.upc.edu/docs/manual se sirva desde /home/documentos/manual. UserDir: Permite indicar a Apache que un subdirectorio dentro del directorio de trabajo de los diferentes usuarios del sistema sirva para que estos almacenen su pgina personal. Por ejemplo: UserDir publico har que la pgina almacenada en el directorio del usuario "test", dentro del subdirectorio "pblico", sea accesible como: http://www.upc.edu/~test/indice.html

Directivas de seccin
Casi todas las secciones de localizacin (Directory, Location, etc.) incluyen una serie de directivas en su configuracin que permiten controlar el acceso al contenido. El mdulo mod_access facilita estas directivas. Allow: Permite especificar quin tiene autorizacin para acceder a un recurso. Se pueden especificar direcciones IP, nombres de mquina, fragmentos del nombre o de la direccin o variables de la peticin. Existe la palabra clave "all" que indica "todos los clientes". Deny: Permite especificar a quin no permitimos el acceso a un recurso. Cuenta con las mismas opciones que Allow. Order: Permite afinar el funcionamiento de las anteriores directivas: Allow y Deny. Existen 2 opciones: Allow, Deny. Por defecto se deniega el acceso y slo podrn acceder aquellos clientes que cumplan las especificaciones de Allow y en cambio no cumplan las especificaciones de Deny. Deny, Allow. Por defecto se permite el acceso y slo podrn entrar los clientes que no cumplan las especificaciones de Deny o s cumplan las especificaciones de Allow.

-3-

Servidores virtuales
Apache permite servir varios sitios web con un nico servidor. Para ello permite la creacin de dominios virtuales en funcin de diferentes direcciones IP o diferentes nombres por IP. Apache fue de los primeros servidores que soport servidores virtuales sin necesidad de distinguir por IP, sino en funcin de nombre. Esta capacidad simplifica enormemente la administracin de los servidores, y supone un ahorro de direcciones IP, que normalmente son escasas. Los servidores virtuales que distinguen en funcin del nombre son perfectamente transparentes para el cliente, con la posible excepcin de aquellos navegadores muy antiguos que no enven la cabecera "Host:" con cada peticin.

Servidores virtuales por direccin IP


Para atender a varios servidores virtuales, cada uno de ellos con una direccin IP diferente, se utiliza la seccin de configuracin VirtualHost. Con esta seccin se define una configuracin y direccin IP para cada uno de los servidores. Un ejemplo sera el siguiente. <VirtualHost 192.168.1.1> ServerAdmin webmaster@upc.edu DocumentRoot /web/upc ServerName www.upc.edu ErrorLog /web/logs/upc_error_log TransferLog /web/logs/upc_access_log </VirtualHost> <VirtualHost 192.168.254.254> ServerAdmin webmaster@asociados.upc.edu DocumentRoot /web/asociados ServerName asociados.upc.edu ErrorLog /web/logs/asociados_error_log TransferLog /web/logs/asociados_access_log </VirtualHost> este ejemplo define 2 servidores web, cada uno de ellos con una IP y un nombre diferentes. Ambos tienen su propio DocumentRoot, etc. Para hacer uso de servidores virtuales por IP, se necesita que el sistema servidor tenga configuradas en su sistema operativo las diferentes direcciones IP que debe servir.

Servidores virtuales por nombre


Para atender a varios servidores, utilizando una misma direccin IP para todos ellos, se utiliza la seccin VirtualHost, que permite definir los parmetros de cada uno de los servidores. Sirva como ejemplo la siguiente configuracin: NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@upc.edu ServerName www.upc.edu DocumentRoot /web/uoc ErrorLog /web/logs/uoc_error_log TransferLog /web/logs/uoc_access_log </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@upc.edu ServerName asociados.upc.edu DocumentRoot /web/asociados ErrorLog /web/logs/asociados_error_log TransferLog /web/logs/asociados_access_log </VirtualHost>. Se puede utilizar una direccin IP concreta en lugar de *, lo cual permite asignar, por ejemplo, un grupo de servidores virtuales por nombre a esta IP y otro grupo a otra IP. Cuando nuestro servidor tiene 2 direcciones IP, pero hemos asignado a las 2 el mismo nombre, se necesita un uso especial de las directivas de servidores por nombre. Por ejemplo, cuando se
-4-

dispone una conexin de red en la intranet y otra conexin diferente en Internet con el mismo nombre, caso en el cual podemos servir el mismo contenido de la esta forma: NameVirtualHost 192.168.1.1 NameVirtualHost 172.40.30.40 <VirtualHost 192.168.1.1 172.40.30.40> DocumentRoot /www/servidor1 ServerName servidor.upc.edu ServerAlias servidor </VirtualHost> Con esta configuracin se puede servir la misma web hacia la intranet y hacia la Internet. Es conveniente sealar el uso de un alias para el servidor, lo cual permite no tener que usar dominios en la intranet. Disponemos de una especificacin de servidor virtual por defecto "_default_" que permite atender las peticiones que no sirve ningn otro servidor virtual. <VirtualHost _default_> DocumentRoot /www/defecto </VirtualHost> Podemos usar la etiqueta "_default_" indicando un nmero de puerto para especificar servidores por defecto que sean diferentes para cada puerto. Apache permite tambin configuraciones ms complejas de servidores virtuales, muy tiles en casos de, por ejemplo, servidores masivos. Una excelente gua de referencia se encuentra en la web del proyecto Apache, con consejos tiles para configurar el servidor. Existen muchos servidores HTTP de cdigo libre, pero la mayora de ellos han quedado eclipsados por Apache. Algunos de estos servidores tienen caractersticas que les hacen especialmente interesantes.

-5-

Das könnte Ihnen auch gefallen