Вы находитесь на странице: 1из 19

Servidor HTTP

En Ubuntus con Apache

Javier García Gómez

2º Asir B
Índice
Ejercicio 1: ..................................................................................................................................... 3
Ejercicio 2: ..................................................................................................................................... 5
Apache2.conf............................................................................................................................. 6
Ports.conf .................................................................................................................................. 6
Passwd ....................................................................................................................................... 6
envvars ...................................................................................................................................... 6
Magic ......................................................................................................................................... 6
mods-available .......................................................................................................................... 6
mods-enabled ........................................................................................................................... 6
sites-available ............................................................................................................................ 6
sites-enabled ............................................................................................................................. 6
conf-available ............................................................................................................................ 7
conf-enabled ............................................................................................................................. 7
Ejercicio 3 .................................................................................................................................... 10
log de accesos ......................................................................................................................... 18
log de error .............................................................................................................................. 18
Ejercicio 4. Páginas Personales.................................................................................................... 18
Ejercicio 1:

1.1 Instalación de Apache

Para llevar a cabo esta parte necesitamos conectividad por lo que ponemos nuestra máquina
virtual en configuración adaptador puente y con los dns apuntando al servidor externo de
andared. Esta máquina tendrá alojada un servidor http y un servidor dns. Sin embargo, Como
toda las pruebas las hacemos a través de un cliente windows xp y ubuntus, durante toda la
práctica podemos dejar esta configuración ya que el servidor tiene una ip fija: 192.168.5.45. El
único problema sería al acceder al servidor http ya que el servidor dns externo de andared no
nos llevaría a nuestros sitio web. Esto no es problemático porque el acceso al servidor http lo
hacemos con los clientes que si tendrán configurado como servidor dns, nuestro servidor y no
el de andared.

Para llevar a cabo la instalación, nos logueamos como root y lanzamos el comando:

sudo apt-get update

sudo apt-get install apache2

El primero actualiza los paquetes disponibles ya que por defecto ubuntus no trae el paquete
apache2. El segundo nos instala nuestro servidor apache2 con lo básico.

1.2 Comprobarlo abriendo un navegador y escribiendo http://localhost en la barra de


direcciones del navegador de nuestro servidor.

Ilustración 1 Ventana de inicio del servidor apache

1.3 Comprueba la versión utilizada

Lanzamos el comando apachectl con la opción -v (Ilustración 2)

Ilustración 2 Versión de apache instalada

Índice Página 3
1.4 Comprueba que se han creado el usuario www-data y el grupo-data

Para la comprobación vamos a irnos al fichero passwd y al fichero group. Ambos alojados en
/etc. Podemos observar su existencia en la Ilustración 3.

Ilustración 3 Usuario www-data y grupo www-data

1.5 comprueba que se ha creado el directorio /var/www y quien es su propietario y grupo

Ejecutamos ls -l /var y podemos ver que existe la carpeta y que el propietario y el grupo son
root (Ilustración 4).

Ilustración 4 Existencia de la carpeta www

1.6 Personaliza la página que viene por defecto.

Para ello debemos modificar el fichero index.html que se encuentra en


/var/www/html/index.html.

En la Ilustración 5 podemos ver la modificación y en la Ilustración 6 su resultado.

Índice Página 4
Ilustración 5 Modificación del fichero index.html

1.7 Abre el navegador del servidor y accede a http://localhost

Ilustración 6 Resultado de la modificación

Ejercicio 2:
2.1 Abre la carpeta apache2 e indica a continuación los ficheros y directorios que se
encuentran en ella y escribe para que sirven.

En la Ilustración 7 podemos ver que los fichero y directorios son:

Ficheros apache2.conf, envvars, passwd, ports.conf y magic.

Directorios conf-available, conf-enabled, mod-available, mod-enabled, sites available, sites-


enabled.

Ilustración 7 Contenido de la carpeta apache2

Índice Página 5
Apache2.conf
Archivo principal de configuración.

Contiene un conjunto de directivas que determinan el comportamiento del servidor.

Las directivas que no se especifican en este fichero, utilizan su valor por defecto

En este fichero se incluyen otros ficheros de configuración (usando la directiva include).

Ports.conf
En él se definen las IPs y puertos en los que escucha el servidor.

Passwd
Creado posteriormente en la realización de la práctica. Contiene usuarios y credenciales de los
mismos para poder acceder a sitios privados. Podría haberse buscado otra ubicación para este
fichero pero decidí ponerlo en esta carpeta.

envvars
Contiene las variables de entorno de apache

Magic
instrucciones para determinar el tipo MIME en base a los primeros bytes de un archivo.

Echo en falta el fichero htpd.conf que era el antiguo fichero de configuración de apache.

Actualmente remplazado por apache2.conf

mods-available
Directorio que contiene los archivos de los diferentes módulos que puede utilizar apache.
Contiene ficheros .load y .conf

Los ficheros .load contienen todo lo necesario para cargar un módulo en concreto

Los ficheros .conf asociados contienen la configuración básica para inicializar el módulo.

mods-enabled
Directorio de configuración de los módulos activos de Apache. Contiene enlaces simbólicos a
los ficheros del directorio mods-available

sites-available
Este directorio tiene archivos de configuración para los Servidores Virtuales. Los servidores
virtuales permiten que Apache2 sea configurado para múltiples sitios que tengan
configuraciones separadas.

sites-enabled
Directorio de configuración, que contiene los hosts virtuales activos.

Índice Página 6
Contiene enlaces simbólicos al directorio /etc/apache2/sites-available. Similarmente cuando
un archivo de configuración en sites-available tiene un enlace simbólico, el sitio configurado
por él será activo una vez que se reinicie Apache2

conf-available
este directorio contiene los archivos de configuración disponibles. Todos los archivos que se
ubicaban anteriormente en /etc/apache2/conf.d deben moverse a /etc/apache2/conf-
available.

conf-enabled
contiene enlaces simbólicos a los ficheros alojados en /etc/apache2/conf-available. Cuando un
fichero tiene un enlace simbólico estará disponible la próxima vez que se reinicie apache.

2.2 Consulta el fichero ports.conf y describe su contenido. ¿Están habilitados los


servidores virtuales por nombre en todas las direcciones IP y en el puerto 80 (NameVirtualHost
*80)? Si están habilitados, esto anula el servidor principal en todas las direcciones IP

Ilustración 8 Contenido del fichero ports.conf

Vemos que por defecto sólo tenemos escucha por el puerto 80.

Viendo este fichero no podemos saber si están los servidores virtuales habilitados. Si lo
estuvieran, el servidor principal quedaría sin efecto.

2.3 Accede al directorio sites-available y describe el contenido ¿ Está el archivo default?


¿Que contiene este archivo?

Viendo la Ilustración 9 podemos afirmar que existe dicho archivo. En el fichero 000-
default.conf se encuentra la configuración del servidor virtual por defecto.

Índice Página 7
Ilustración 9 Contenido de la carpeta sites-available

2.4 Accede al directorio sites-enabled y comprueba que que existe e fichero 000- default
que es un enlace simbólico a un fichero ¿ a que fichero se refiere y donde está?

Podemos ver que existe el fichero 000-default.conf que apuntará al fichero 000-default.conf
del directorio sites-available.

2.5 Consulta el fichero 000-default y verifica que hay creado un servidor virtual. ¿ En
cuantas direcciones IP escucha? ¿ Cual es su directorio raíz?

Ilustración 10 Archivo 000-default.conf

Vemos que existe un servidor virtual que acepta cualquier ip (ya que tiene *) y escucha por el
puerto 80.

Su directorio raíz es /var/www/htlm.

2.6 Consulta el fichero apache2.conf ¿Cuál es el valor de la directiva ServerRoot? ¿ Las


directivas User y Group a que usuario y grupo definen?

En la Ilustración 11 podemos ver que ServerRoot viene comentado.

Ilustración 11 ServerRoot

Índice Página 8
Ilustración 12 User y Group

2.7 ¿En que directorio se establecen las variables de entorno?

Las variables de entorno se encuentra dentro del fichero envvars que estaba situado en
/etc/apache2/envvars.

2.8 ¿Cuál es el máximo número de peticiones simultáneas que permite el servidor? ¿ Qué
directivas definen este comportamiento?

En la Ilustración 13 podemos ver que el número máximo es 100.

Ilustración 13 Número máximo de peticiones que permite el servidor.¡

2.9 ¿ Se permiten conexiones persistentes ( en todas las conexiones de un usuario se


atienden en la misma conexión TCP)? ¿ Qué directiva define este comportamiento?

En la Ilustración 14 vemos que por defecto la directiva permite las conexiones persistentes.

Ilustración 14 Conexiones persistentes

2.10 En Apache hay una directiva que especifica el tiempo máximo que puede tardar una
petición en ser atendida. ¿Cuál es esa directiva? Explica para qué puede ser útil.

En la Ilustración 15 podemos ver la directiva y el tiempo que tiene asignado por defecto, que
es de 5 segundos. Si no existiera dicho tiempo, las peticiones podrían acabar colapsando el
servidor. Si pasados estos cinco segundos, no se ha respondido a la petición, el cliente lo sabrá
y podrá actuar en consecuencia.

Ilustración 15 Tiempo máximo en responder

Índice Página 9
2.11 Mostrar los archivos que se utilizaran por Apache como archivos por defecto en la
visualización de un directorio (normalmente index.html). Si no se encuentra index.php,
incluirlo.

En el archivo apach2.conf dentro de etc/apache2/apache2.conf buscamos:

DirectoryIndex index.html index.php

Aquí están los ficheros de visualización por defecto. He añadido el index.php.

Ejercicio 3

Debes configurar un servidor Apache, con las siguientes características:

• Servirá dos páginas web: winsurf y kitesurf

• winsuf estará alojada en /var/www/winsurf

• kitesurf estará alojada en /var/www/kitesurf

• El servidor mostrará winsurf cuando se acceda a la dirección www.winsurf.com a


través del navegador de cualquier cliente, solo al usuario pepe.

• El servidor mostrará kitesurf cuando se acceda a la dirección www.kitesurf.com a


través del navegador de cualquier cliente

Para probar el funcionamiento necesitarías un servidor DNS

Como hemos realizado la configuración e instalación del servidor DNS cae fuera de los
objetivos de esta práctica. En la Ilustración 16,Ilustración 17 e Ilustración 18 podemos ver
como ha quedado dicha configuración.

Ilustración 16 Zona Directa e Inversa

Índice Página 10
Ilustración 17 Fichero de configuración de la zona directa

Ilustración 18 Fichero de configuración de la zona inversa

Para que apache reconozca bien el servidor dns interno. Debemos añadir al fichero
apache2.conf la línea

ServerName Localhost

Una vez creado el servidor DNS vamos a realizar la configuración del servidor http.

Lo primero será crear las carpetas:

mkdir /var/www/kitesurf

mkdir /var/www/windsurf

Luego creamos un fichero index.html dentro de cada carpeta.

Índice Página 11
echo "A tope con winsurf" > /var/www/windsurf/index.html

echo "A tope con kitesurf" > /var/www/windsurf/index.html

Como el servidor windsurf será privado para el usuario pepe tendremos que instalar un
paquete apache2-utils que nos permitirá activar el módulo necesario.

Una vez instalado ya podremos directiva .httaccess

Este comando crea el archivo passwd en la carpeta /etc/apache2 e introduce dentro al usuario
pepe y la clave que introduzcamos por teclado.

Ahora vamos a crear nuestros servidor virtuales. Para ello creamos en sites-available dos
ficheros. winsurf.com.conf y kitesurf.com.conf. A priori, debería funcionar acabado en .com.
Pero al tratar de crear el enlace simbólico a la carpeta sites-enabled daba problemas que se
resolvieron terminando los fichero en .conf.

Ilustración 19 Fichero del host virtual www.winsurf.com

En la podemos ver que el sitio www.winsurf.com esta escuchando por el puerto 8080. Ya que
en el siguiente apartado nos pedirán que lo modifiquemos para que su puerto de escucha sea
el 8080. Originalmente, después de la ip ponía :80.

Ilustración 20 Fichero de configuración del sitio www.kitesurf.com

Índice Página 12
Una vez creado los ficheros debemos ejecutar

a2ensite kitesurf.com.conf y a2ensite winsurf.com.conf para que se cree el enlace simbólico en


sites-enabled.

Las capturas entrando en los servidores desde los clientes se me han quedado en clase y ahora
mismo la configuración es distinta por lo que no puedo añadirlas.

3.1 Modificar el puerto en el que escucha el servidor Apache del sitio virtual winsurf para
que sea el 8080. Indica el fichero y línea que tienes que modificar y Pruébalo.

Además, de poner 8080 tras la ip, como comenté en el apartado anterior. Debemos decirle al
servidor que también escuche por el puerto 8080. Para ello nos vamos al fichero ports.conf y
añadimos la línea Listen 8080.

Ilustración 21 Archivo ports.conf

Comprobación:

Ilustración 22 Entrada al sitio winsurf.com a través dle puerto 8080

Índice Página 13
Ilustración 23 Una vez dentro del sitio winsurf.com

3.2 Modificar el directorio raíz para la visualización de las web kitesurf para que sea
/C/miweb

Para llevar a cabo esta tarea debemos seguir los siguientes pasos.

Crear el directorio /C con: mkdir /C.

Crear el directorio miweb con: mkdir /C/miweb.

Mover kitesurf de /var/www al /C/miweb con: mv /var/www/kitesurf /C/miweb

Modificar el fichero kitesurf.com.conf.

Cambiamos la ruta del DocumentRott y le damos permisos.

3.3 Encuentra la directiva que se utiliza para la visualización de páginas de error.


Personaliza una pagina de error para que cuando desde un navegador de un cliente acceda a
www.kitesurf.com/noesta.htm me devuelva un error.

Para llevar a cabo esta labor tenemos diferentes caminos.

Yendo al directorio conf-available, editamos el fichero localized-error-pages.conf.

Ilustración 24 Contenido del directorio conf-available

Índice Página 14
Ilustración 25 fichero localized-error-pages.conf

Descomentamos la línea ErrorDocument que queramos y ya tendríamos personalizado nuestro


error.

Otra forma sería dentro de nuestro servidor añadir la línea

Diciendo que error queremos y la ruta relativa al fichero.

3.4 Crea un dirertorio virtual llamado datos en el sitio kitesurf cuyo contenido es un
fichero llamado datos1.html que contiene "mis datos son..."

3.5 Crea un fichero kite.html cuyo contenido es "cometa"

Estos dos ejercicios los vamos a hacer juntos. Lo primero será crear la carpeta datos.

mkdir /C/miweb/kitesurf/datos

Posteriormente creamos los dos ficheros.

echo "mis datos son" > /C/miweb/kitesurf/datos/datos1.html

echo "cometa" > /C/miweb/kitesurf/datos/kite.html

Ilustración 26 Ficheros datos1.html y kite.html

Ahora nos vamos al sitio kitesurf.com.conf

Ilustración 27 Parte del fichero kitesurf.com.conf

Índice Página 15
De esta forma hemos creado el acceso a la carpeta datos. Al poner DirectoryIndex datos1.html.
Cuando escribamos www.kitesurf.com/datos directamente se irá al contenido del fichero
datos1.html

3.6 Abre el navegador desde un cliente y comprueba que se accede al directorio y al


fichero anteriores

Ilustración 28 Accediendo a la carpeta datos

Ilustración 29 Accediendo a la carpeta datos, al fichero kite

3.7 Renombra el fichero Index.htm por el de indice.html. Abre el navegador desde un


cliente y accede al sitio kitesurf . ¿Qué ocurre?

La captura con el error esta en clase. Pero la cambiar el nombre del fichero, no dará un error
ya que por defecto tenemos puesto que el DirectoryIndex sea indice.html.

DirectoryIndex nombre1.html,nombre2.html,nombre3.html

Si tenemos algo así. El navegador trata de ir a nombre1.html sino lo encuentra a nombre2.html


y así sucesivamente. Si no encuentra ninguna, mandará un error.

3.8 Ahora quiero que el fichero kite.html se utilice como fichero que se va abrir cuando
accedo a la pagina www.kitesurf.com ¿Qué tengo que hacer?

Índice Página 16
Ilustración 30 Fichero Kitesurf.com.conf

Tan solo hemos tenido que añadir DirectoryIndex datos/kites.html al comienzo para que tome
ese archivo como el fichero por defecto.

En la Ilustración 30 podemos ver como ha quedado nuestro fichero kitesurf.com.conf al final


de la práctica.

3.9 Consulta el log de errores

3.10 Consulta el log de accesos

Ambos log se encuentran en el mismo sitio /var/log/apache2

Índice Página 17
log de accesos

log de error

Ejercicio 4. Páginas Personales

4.1 En el servidor principal (servidor por defecto). Crea tu página personal. Para ello crea un
directorio /home/alumno/public_html. Accede con un navegador de un equipo cliente a
http:ip del servidor /~alumno y verifica que se sirve el recurso.

Tenemos dentro de ubuntus el usuario jgarcia.

Creamos el directorio: mkdir /home/jgarcia/public_html.

Creamos el fichero mipagina.html dentro del directorio: echo "Mi pagina personal" >
/home/jgarcia/public_html/mipagina.html (Ilustración 31).

Ilustración 31 Creación del directorio para hacer una página personal

Ejecutamos sudo a2enmod userdir para activar el modulo y reiniciamos el servidor apache.

Índice Página 18
En la Ilustración 32 podemos comprobar que ahora esta habilitado dicho módulo

Ilustración 32 Contenido de la carpeta mods-enabled

Dentro del fichero userdir.conf (Ilustración 33) podemos ver que el directorio donde podrán
alojar la página privadas los usuarios si esta habilitado el módulo userdir será public-html.
También podemos observar que no esta habilitado para el usuario root.

Ilustración 33 Contenido del fichero userdir.conf

Nos vamos al cliente y observamos que podemos acceder a la página

Índice Página 19

Вам также может понравиться