LUIS MIGUEL GOMEZ JIMENEZ GRUPO: S22 PRACTICA 4 LINUX – SERVIDOR WEB APACHE PRÁCTICA 4. LINUX SERVIDOR WEB APACHE 1. Introducción al protocolo HTTP ----- TEORIA_HTTP.PDF Internet RFC HTTP: http://tools.ietf.org/html/rfc2616 MIME TYPES: http://www.webtaller.com/maletin/articulos/que-son-mime-types.php TIPOS MIMES: http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book3ed/appb/mimetype.html LISTA DE CABECERAS HTTP 1.1: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields CABECERA AGENTE DE USUARIO: http://es.wikipedia.org/wiki/Agente_de_usuario EJERCICIO 1. HTTP. 1) Visualiza la información de las cabeceras de los siguientes servidores webs identificando los parámetros que puedas, con wget -S: http://www.linux-magazine.es/
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
LUIS MIGUEL GOMEZ JIMENEZ
GRUPO: S22
PRACTICA 4 LINUX – SERVIDOR WEB APACHE
PRÁCTICA 4. LINUX SERVIDOR WEB APACHE
1. Introducción al protocolo HTTP ----- TEORIA_HTTP.PDF Internet RFC HTTP: http://tools.ietf.org/html/rfc2616
EJERCICIO 3: INSTALACIÓN Y CONFIGURACIÓN APACHE 2 EN DEBIAN/UBUNTU
1) Instala el servidor web Apache e indica el FQDN para que al iniciar el servicio no nos
de ningún problema.
2) ¿Qué diferencia hay entre un restart y un reload?
• restart: Reinicia el servicio de apache. Equivale a un stop, seguido de un start.
• reload: Recarga los últimos cambios registrados dentro del servicio de apache.
3) ¿Qué es la opción graceful?
Esta opción hace que el proceso padre indique a sus hijos que terminen después de servir la petición que estén atendiendo en ese momento (o de inmediato si no están sirviendo ninguna petición). El proceso padre lee de nuevo sus ficheros de configuración y vuelve a abrir sus ficheros log. Conforme cada hijo va terminando, el proceso padre lo va sustituyendo con un hijo de una nueva generación con la nueva configuración, que empeciezan a servir peticiones inmediatamente.
4) Comprueba la directiva donde indicamos el puerto de escucha del servidor
Escuchará por el puerto 80 por defecto anose que se le instale algún modulo adicional.
5) Comprueba los módulos cargados en el servidor: mirando en el directorio adecuado y
utilizando la herramienta apache2ctl.
6) Comprueba los sitios webs activos en nuestro servidor: mirando en el directorio adecuado y
utilizando la herramienta apache2ctl.
EJERCICIO 4. APACHE SIN VIRTUAL HOST
El servidor web Apache2.2 se instala por defecto con un host virtual. La configuración de este
sitio la podemos encontrar en:
/etc/apache2/sites-available/default
Y por defecto este sitio virtual está habilitado, por lo que podemos comprobar que existe un
enlace
simbólico a este fichero en el directorio /etc/apache2/sites-enabled.
Si no necesitamos utilizar la funcionalidad de vitual hosting debemos deshabilitar el sitio
virtual:
a2dissite default
y podemos coger parte del fichero de configuración default y añadirlo a la configuración del
servidor web, por ejemplo podemos ponerlo dentro del fichero /etc/httpd.conf:
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Reiniciamos el servicio y comprueba que puedes acceder al servidor.
EJERCICIO 5: INTRODUCCIÓN AL VIRTUAL HOSTING CON APACHE 2.2
El objetivo de esta práctica es la puesta en marcha de dos sitios web utilizando el mismo
servidor web apache. Hay que tener en cuenta lo siguiente:
Cada sitio web tendra nombres distintos, cada sitio web compartirán la misma dirección IP y el
mismo puerto (80).
Queremos construir en nuestro servidor web apache dos sitios web con las siguientes
características:
1. El nombre de dominio del primero será www.iespjm.com, su directorio base será
/var/www/iespjm y contendrá una página llamada index.html, donde sólo se verá una bienvenida.
2. En el segundo sitio vamos a crear una página donde se pondrán noticias por parte de los
departamento, el nombre de este sitio será www.sri.org, y su directorio base será
/var/www/sri. En este sitio sólo tendremos una página inicial index.html, dando la bienvenida a
la página del módulo SRI.
Para conseguir estos dos sitios virtuales debes seguir los siguientes pasos:
3) Los ficheros de configuración de los sitios webs se encuentran en el directorio
/etc/apache2/sitesavailable,por defecto hay dos ficheros, uno se llama default que es la
configuración del sitio web por defecto.
Necesitamos tener dos ficheros para realizar la configuración d elos dos sitios virtuales para ello
vamos a copiar el fichero default :
#cd/etc/apache2/sites-available
#cp default iespjm
#cp default sri
2)Modificamos el fichero iespjm, donde vamos a añadir la siguiente línea:
ServerName www.iespjm.org
Y vamos a modificar dos líneas:
DocumentRoot /var/www/iespjm/
<Directory /var/www/iespjm/>
Hago lo mismo para el archivo sri.
No es suficiente crear los ficheros de configuración de cada sitio web es necesario crear un
enlace simbólico a estos ficheros dentro del directorio /etc/apache2/sites-enabled, para ello:
# cd /etc/apache2/sites-enabled
#a2ensite iespjm
# a2ensite sri
Ahora creo las carpetas sri y iespjm con sus correspondientes index.html
En el cliente
Edito el archivo /etc/hosts
EJERCICIO 6. PUERTOS DE ESCUCHA
1) Configura apache2 para no usar virtual hosting, y cambia el puerto de escucha del servidor al
8081.
¿Se puede terner el servidor escuchando por dos puertos el 80 y el 8081?
Si
2) Configura apache2 para que use los sitios virtuales del ejercicio 5 anterior, pero modifica la
configuración para que www.iespjm.com sea visible por el puerto 80, y www.sri.com sea visible
desde el puero 8081. Archivo /etc/apache2/sites-available/iespjm
ESTRUCTURA DE LOS FICHEROS DE CONFIGURACIÓN
http://httpd.apache.org/docs/2.2/configuring.html
Los módulos pueden ser así activados, o desactivados, según nuestras necesidades. La gestión
de
módulos se realiza así:
• Ver los módulos que tenemos activados:
# apache2ctl l
• Para activar un módulo:
# a2enmod modulo (apache 2 enable module)
• Para desactivar un módulo:
# a2dismod modulo (apache 2 disable module)
EJERCICIO 7. DIRECTIVAS DEL FICHERO APACHE2.CONF
Busca en el fichero de configuración de Apache las siguientes directivas, determina que
función tienen y el valor que poseen por defecto.
Directivas de identificación del servidor:
ServerName Directiva establece el esquema de solicitud, nombre de host y puerto que el
servidor utiliza para identificarse. Esto se utiliza al crear direcciones URL de redirección.
ServerAdmin Dirección de correo electrónico que el servidor incluye en los mensajes de
error se envía al cliente
Directivas de localización de ficheros
DocumentRoot Directorio que forma la estructura del documento principal visible desde la
web.
ErrorLog Lugar donde el servidor registra los errores.
CustomLog Establece nombre y el formato del archivo de registro.
PidFile Presente en el servidor registra el ID de proceso del daemon.
ServerRoot Base directorio para la instalación del servidor.
AccessFileName Nombre del fichero de configuración distribuida
Directivas de control de la conexión
Timeout Cantidad de tiempo que el servidor esperará para ciertos eventos antes de fallar
una solicitud. Sintaxis: TimeOut segundos KeepAlive Permite conexiones HTTP persistentes.
MaxKeepAliveRequests Número de peticiones permitidas en una conexión persistentes.
KeepAliveTimeout Cantidad de tiempo que el servidor esperará para las solicitudes
posteriores en una conexión persistente.
Otras directivas
User Nombre de usuario con el que el servidor responderá a las peticiones
Group Grupo con el que el servidor atenderá las peticiones
DefaultType Tipo de contenido MIME por defecto que usará el servidor si no puede
determinar el tipo MIME en concreto del documento a servir.
LogLevel Controla el nivel de detalle del registro de errores.
LogFormat Describe un formato para su uso en un archivo de registro.
EJERCICIO 8. Y ESTRUCTURA DE LOS FICHEROS DE CONFIGURACIÓN.
1) Las directivas de configuración de apache2 se pueden aplicar si está definido un
determinado parámetro. Para esto se utiliza la directiva <IfDefine>. Busca en algún
fichero de configuración esta directiva.
No la he encontrado.
2) Para cargar dinámicamente los módulos se utilza la directiva LoadModule, búscalos
en los ficheros *.load dentro de /etc/apache2/mods-availables.
Más información: http://httpd.apache.org/docs/2.2/dso.html
3) Busca en la configuración una variable de entorno y determina en que fichero están
definidas.
4) La directiva Include nos permite añadir ficheros de configuración a la configuración general
de apache2. Comprueba qué ficheros son añadidos con esta directiva.
5) Podemos aplicar directivas a partes concretas de nuestro servidor web, para ello estudia las
siguientes directivas (Para aprender más lee Secciones de Configuración):
<Directory>
Se usa para englobar un grupo de directivas que se aplicarán solamente al directorio
especificado y a sus subdirectorios. Puede incluir a cualquier directiva cuyo uso esté
permitido en un contexto <directory>. Directory-ruta puede ser tanto la ruta
completa a un directorio, como una cadena de caracteres comodín que use las reglas
de equivalencia de
los shells de Unix.
<DirectoryMatch>
Se usa para englobar a un grupo de directivas que se aplicarán solamente al directorio
(y los subdirectorios de éste) especificado, al igual que <Directory>. Sin embargo, en
ese caso la directiva toma como argumento una expresión regular.
<VirtualHost>
Se usan para incluir un grupo de directivas que se aplicarán solo a un host virtual en
particular. Cualquier directiva que esté permitido usar en un contexto virtual host
puede
usarse. Cuando el servidor recibe una petición de un documento de un host virtual en
concreto, usa las directivas de configuración incluidas en la sección <VirtualHost>.
Localiza algunas de ellas en los ficheros de configuración.
LOGS Y ERRORES.
http://httpd.apache.org/docs/2.2/es/logs.html
EJERCICIO 9. Logs.
1) Consulta el fichero /etc/apache2/sites-available/default e indica cuál es fichero de logs
de errores, qué directiva usa y cuál es su nivel de prioridad. Muestra su contenido.
Directiva ErrorLog
Nivel de prioridad warning
2)Indica cuál es fichero de logs de accesos, qué directiva usa y cuál es su formato. Muestra su
contenido.
Ruta del fichero log: /var/log/apache2/Access.log
Directiva: CustomLog
Formato: Combined
3) Estando en el mismo fichero, configura el servidor para que cuando retorne el código
ErrorDocument de valor 404 envio el texto “Página no encontrada en el servidor iespjm.com.
Pruébalo accediendo a una página html que no existe.
4) Modifica ahora el comportamiento anterior para que cuando ese caso se de, se muestre el
contenido de no_esta.html creado por ti.
DIRECTORIOS VIRTUALES.
Son directorios que están fuera del directorio raiz DocumentRoot. Se pueden crear con la
directiva Alias, y con un enlace simbólico dentro del directorio raíz (FollowSymLinks)
apuntando al otro directorio.
EJERCICIO 10. DIRECTORIOS VIRTUALES.
1)Crea un directorio en /home/alumno/redes. Accede con el usuario alumno. Crea un archivo
dentro redes.html. Accede como administrador y edita el fichero default y utilizando la
sentencia Alias crea un directorio virtual /redes y configúralo con la directiva <Directory.
Pruébalo.
Desde el cliente
2)Crea un directorio en /home/alumno/servicios. Accede con el usuario alumno. Crea un archivo
dentro servicios.html. Accede como administrador y crea utilizando un enlace simbólico entre
la carpeta /var/www/servicios y /home/alumno/servicios. Pruébalo.
Ahora creamos en enlace simbolico.
Volvemos a editar nuestro sitio default.
La opción FollowSymLinks sirve para seguir los enlaces simbólicos alojados en el.
Desde el servidor
Desde el cliente.
CONFIGURACIÓN MODULAR EN APACHE
Apache es un servidor modular y el núcleo tiene las funcionalidades básicas que se pueden
ampliar con módulos adicionales. Cada módulo se puede configurar con directivas. Existen
múltiples módulos que puedes consultar en http://httpd.apache.org/docs/2.2/mod y en
http://modules.apache.org
Existen módulos estáticos que se añaden cuando se compila Apache. Y módulos dinámicos que
se cargan dinámicamente cuando se inicia el servidor. Si el servidor se compila con la opción
DSO, entonces se podrán cargar módulos dinámicos con la directiva LoadModule. La directiva
<IfModule > permite especificar que se tendrá en cuenta si el módulo está cargado.
EJERCICIO 11. APACHE MODULAR. o existe.
1) Consulta los módulos estáticos (apache2ctl) de la versión precompilada .deb que está
instalada en tu Ubuntu y los módulos dinámicos cargados por defecto.
2) Consulta los módulos dinámicos en /etc/apache2/mods-enabled. ¿qué tipo de ficheros
encuentras?
3) Edita el fichero alias.load y observa cómo se utiliza la directiva LoadModule para cargar el
módulo Comprueba cuál es la ruta donde está el código del modulo (archivo .so)
4) Edita el fichero alias.conf, ¿qué encuentras dentro de la directiva <IfModule.
Encontraremos la configuración del modulo.
5) Muestra de la carpeta modules, los módulos disponibles para cargar.
6) Con sudo apt-cache search libapache2-mod muestra los paquetes disponibles en los
repositorios de Ubuntu que permiten instalar módulos adicionales de Apache.
7) Comprueba que el módulo userdir no está habilitado. Desabilitalo, y finalmente vuelve a
habilitarlo.
8) ¿Qué ficheros se han creado en el directorio mods-enabled? Reinicia el servidor.
9) Consulta userdir.conf y observa que se han habilitado el uso de directorios personales. ¿cuál
es el nombre del subdirectorio que pueden crear los usuarios en su directorio home para poner
sus páginas personales?
10) Inicia una sesión con el usuario alumno, y vete al subdirectorio creado antes y crea una
página web personal.htm. Accede ahora a tu navegador con la URL