TEMA 9. Configuración de un Servidor Web. |
9.1 ConfiguraciÓn de un Servidor web. Entre los usos más populares de Internet en segundo lugar nos encontramos con la navegación web, por detrás del correo electrónico. El servidor web más popular es con diferencia Apache; no solamente es gratis, un aspecto de máximo interés, sino que también es fuerte y rico en características. Además está disponible para cualquier plataforma. El servidor web Apache tiene disponibles numerosas funcionalidades, que van aumentando con cada versión. Entre ellas están: • Soporte para “cookies” (galletitas). • Soporte para CGI (Common Gateway Interface, o Interfaz de Puerta Común). • Autenticación de contraseña para las páginas o sitios web. • Servidor proxy caché. • Soporte de PHP y Perl (dos lenguajes de servidor para páginas dinámicas). • Soporte de Java (a través de los projectos “Jakarta” o “Java Apache Project”. • Autenticación mySQL. • Hosting virtual (varios sitios web en el mismo servidor). • Soporte de XML (Extended Markup Language, o Lenguaje de Marcado Extendido). La lista es mucho más extensa, todo gracias a que Apache ha sido concebido bajo un diseño modular; esto quiere decir que existe un núcleo central que gobierna el servidor, y una serie de módulos cada uno con una funcionalidad específica o un grupo de funcionalidades; aunque esto resulta en una ejecución más lenta, siempre se puede no ejecutar aquellos módulos que no necesitamos, por lo que al desactivar estos módulos sí obtenemos un rendimiento superior del servidor web. Para instalar Apache puedes utilizar apt (apt-get install apache) o synaptic; se instalarán varios paquetes para resolver las dependencias. Una vez concluida la descarga empieza la configuración con usa serie de preguntas. Si alguna de estas preguntas no aparece, siempre puedes ejecutar “dpkg-reconfigure apache”, porque depende de la versión el que te haga todas las preguntas o sólo algunas durante la instalación. La primera nos pregunta si queremos ejecutar el servidor Apache en el arranque del ordenador; contesta según quieras, pero recuerda que siempre podrás volver a cambiar esta decisión desdes la aplicación “Servicios”, ya que Apache se ejecuta a través de un demonio propio. La siguiente consiste en activar la opción de “suExec”; esta opción se utiliza para que los usuarios ejecuten los CGI (que son programas ejecutables) con los permisos del propietario del CGI en lugar de los suyos propios. Sigue el consejo y selecciona “no”. A continuación debemos seleccionar los módulos que Apache cargará cuando se inicie; por ejemplo en la imagen puedes ver seleccionado el módulo “mod_log_config, encargado de almacenar información de funcionamiento de Apache; más adelante veremos algunos más de ellos. Como Apache ya viene con una serie de módulos necesarios en la mayoría de los casos, pulsa el tabulador y “De acuerdo” (si sabes ya que vas a necesitar alguno que no está marcado puedes activarlo ahora).
Debemos introducir ahora el nombre de nuestro dominio, si tenemos alguno; esto es lo que se conoce como FQND (Fully Qualified Domain Name, o nombre de Dominio Totalmente Cualificado); si no dispones de ninguno deja “localhost”. Lo siguiente que se necesita es la dirección del administrador de Apache, al que serán enviados los problemas en caso de haberlos; acto seguido hay que escribir la ruta local donde residirán las páginas web que Apache servirá; es buena idea dejar /var/www que es la ruta por defecto. Por último nos pregunta el puerto en el que debe escuchar Apache; evidentemente debería ser el 80, a menos que tengas alguna buena razón para esconder tu servidor web (los navegadores siempre buscan en este puerto).
Ya puedes probar tu servidor apache; arranca tu navegador favorito y carga la dirección “localhost” (o tu nombre de dominio si lo tienes). Si utilizas Mozilla, deberías ver la imagen anterior.
Dependiendo de la versión de Apache podrías ver algo distinto, pero lo que nunca deberías ver es el mensaje de alerta; si es así, repite los pasos desde el principio, porque Apache se pone a funcionar en cuanto termina de instalarse.
Los archivos de configuración de Apache se encuentran en /etc/apache; hubo un tiempo en que se utilizaban tres archivos para configurar el servidor: access.conf, httpd.conf y srm.conf; el primero ofrecía el control de seguridad, el segundo controlaba el propio servidor, y el último de ellos seguía la pista de todos los elementos externos que necesitaba el servidor para cargar una página. Sin embargo las versiones más recientes centran toda la configuración en el archivo httpd.conf (los otros dos archivos siguen existiendo por compatibilidad con versiones anteriores, pero se recomienda dejarlos tal y como están. Este archivo es muy extenso, pues dispone de muchas líneas de comentarios que sirven de descripción de las diferentes opciones. La primera de las directivas es “ServerType standalone”, que hace que funcione como demonio independiente; la otra opción es “inetd”, pero no es recomendable utilizar Apache así (además en la versión 1.3 está restringida esta opción a sistemas Unix). A continuación se encuentran una serie de directivas para definir la localización de algunos archivos y directorios, que es mejor no modificar; a partir de “Timeout 300” es probable que sí quieras modificar alguna de ellas, por ejemplo “StartServers 5” que es el número de servidores que se crearán al iniciar Apache, o “MaxClients 150”, que especifica el número máximo de peticiones HTTP simultáneas que aceptara el servidor (cuanto mayor sea más memoria se necesitará). La directiva “Listen” se utiliza para definir puertos o IPs de escucha adicionales a los utilizados por defecto; junto con “BindAddress” se utiliza para definir espacios virtuales; los veremos más adelante. Acto seguido aparecen un par de opciones antes de llegar a la sección 2, que define la configuración principal del servidor. La primera de las directivas está bastante clara pues es “Port 80”, pero siempre debes recordar que esta directiva no se utiliza si se definen sitios virtuales (a menos que añadir una entrada “Listen” para el puerto 80). Las dos siguientes definen al usuario y el grupo bajo el cuál se ejecutará Apache (por lo general “www-data”). Tras ellas aparecen las directivas que contienen la dirección del administrador (el responsable del servidor, no del administrador del sistema) y el nombre del servidor, así como el directorio donde se encuentran las páginas web (/var/www). A continuación se configuran los parámetros para diferentes partes del sistema de archivos; la etiqueta “directory ruta” se utiliza para permitir o bloquear que una funcionalidad del servidor pueda acceder a dicha ruta del sistema de ficheros. Para toda la estructura del sistema (/) se establece no utilizar los enlaces simbólicos sólo si el destino es propiedad del que creó dicho enlace; es lo que hace “Options SymLinksIfOwnerMatch”; otras opciones son “FollowSymLinks”, con la que se permite seguir los vínculos simbólicos, “ExecCGI”, que permite que se ejecuten scripts CGI en esa ubicación, y “none” (ninguna opción activada). Por otro lado “AllowOverride” habilita las funcionalidades de autorización (“AuthConfig”), tipo de documento (“FileInfo”), indexación (“Indexes”), o la elegida en éste caso, ninguna (“none”), lo que es muy conveniente para el directorio raíz. El siguiente directorio en aparecer es /var/www, que debe modificarse en el caso de haber definido otro en “DocumentRoot”, que está configurado adecuadamente para la mayoría de los casos, ya que sigue la política de tener todos los sitios cerrados inicialmente, y decidir uno a uno los que tienen permiso; observa que las directivas de este tipo terminan en “</Directory>”. Así se definen varios directorios hasta llegar a la configuración del módulo “mod_dir.c”, en el que se define cuál es la página inicial de los sitios web (DirectoryIndex), es decir, el nombre de la página principal que será cargado al acceder al sitio; el primero es “index.html, pero nada impide añadir delante “home.html” por ejemplo, o “principal.html”. Si no existe la primera, se busca la siguiente en la lista hasta que se encuentra una; si no coincide ninguna se carga la página de error. El resto son opciones variadas como “DefaultType text/plain”, que le indica a Apache que si se encuentra con información de un tipo desconocido lo trate como texto, o los “LogFormat”, que definen el nivel de detalle de los logs o información que se almacenará sobre el funcionamiento del servidor. Avanza en el archivo y verás por ejemplo cómo se definen las extensiones de archivos y cómo asociarles un icono en Apache (directivas “AddIconByType”, “AddIcon”, y “AddDescription”); el resto son configuraciones que se realizan si se va a proceder a cargar el módulo (“IfModule”).
La última parte del archivo es la que permite definir espacios virtuales (“Virtual Hosts”); hay que definir una IP (o IP:puerto) para cada sitio virtual, lo que se realiza con la directiva “NameVirtualHost”. Una vez configurado esto deberás introducir cierta información relativa a cada sitio virtual que definas mediante directivas “<VirtualHost>”. Vamos a realizar una configuración típica: un segundo sitio web en el puerto 8080 (además del estándar del 80); para ellos introducimos lo siguiente: NameVirtualHost 192.168.0.1:8080 <VirtualHost 192.168.0.1:8080> ServerAdmin webmaster@midominio.com DocumentRoot /var/www2 ServerName midominio.com </VirtualHost> Dentro de “<VirtualHosts>” se pueden introducir cualquier directriz de las que hemos visto anteriormente; las que no se redefinen aquí toman el valor definido en la sección general (por ejemplo “DirectoryIndex” que podría haberse utilizado de nuevo). No olvides definir la directiva “Listen” para el nuevo sito virtual. Recuerda que después de cualquier modificación en este archivos debes reiniciar el servidor. |
Copyright - © ANFORA, 2004. Todos los derechos reservados. Condiciones Legales.