Práctica 401. Despregue dun sitio web estático
Nesta práctica crearemos o noso primeiro sitio web en produción. Concretamente, farémolo dun sitio web estático. A arquitectura web correspóndese coa 1.0 vista na Unidade 1.
Farémolo utilizando IaaS (Infraestrutura como Servizo). Para non utilizar un servizo da nube, utilizaremos unha máquina virtual en VirtualBox. O proceso de posta de produción sería o mesmo.
Como servidor web utilizaremos Apache Server. Concretamente crearemos un Virtual Host baseado en nome. Debido que para facer isto necesitamos un nome de dominio utilizaremos a utilidade de nip.io.
Requisitos
- VirtualBox.
- Máquina virtual DAPW.
- Mozilla Firefox.
- Conexión a Internet.
Apartado 1
Comezaremos por instalar Apache. Comprobaremos, ademais, que a instalación se realizou de xeito correcto.
Realiza os seguintes pasos:
- Conéctate á máquina virtual a través de SSH.
- Actualiza o sistema con
apt updateeapt upgrade. Ter o sistema actualizado é unha boa práctica. - Instala Apache Server. Entrega captura da versión de Apache instalada.
- Na máquina anfitrión, abre un navegador web e escribe na URL a dirección IP da máquina virtual. Entrega captura da páxina por defecto de Apache.
Apartado 2
Crearemos o noso primeiro Virtual Host baseado en nome en Apache Server. Nos seguintes pasos seguramente teñas que usar sudo xa que co usuario damin non tes permisos.
Utilizaremos unha web localizada no seguinte repositorio:
https://github.com/cloudacademy/static-website-example
Realiza os seguintes pasos:
- Clona o repositorio en
/var/www. Este directorio é onde se sitúan as aplicacións web que servirá Apache. - Modifica o nome do repositorio clonado por
estatico. - Modifica os permisos para que o usuario e grupo
www-datasexan os propietarios do directorio clonado e de todos os seus subdirectorios. Deste xeito Apache non terá problema de permisos para utilizar estes ficheiros.
Apartado 3
Agora vamos a probar o servizo nip.io para poder utilizalo nos nosos Virtual Hosts.
Utiliza dig para comprobar a correcta resolución de estatico.192-168-56-56.nip.io. (Se tes outra IP na máquina virtual, modifica a parte de 192.168.56.56 pola túa IP. Isto teralo que facer sempre e cando nos referimos a dirección de nip-io).
A continuación, crearemos o ficheiro de configuración do Virtual Host coas opcións mínimas necesarias.
Realiza os seguintes pasos:
- Crea un ficheiro de configuración dun Virtual Host de nome
estatico.conf. Utiliza o editornano. - Crea un Virtual Host de nome cas seguintes características:
- Porto:
80 - Nome:
estatico.192-168-56-56.nip.io. - Directorio co contido do sitio web:
/var/www/estatico/. É onde clonamos a aplicación que imos a despregar.
- Porto:
- Habilita o Virtual Host creado. Despois, deberás recargar a configuración de Apache. Entrega captura da configuración do Virtual Host.
- Comproba o correcto funcionamento abrindo un navegador web no equipo anfitrión e escribindo a URL
http://estatico.192-168-56-56.nip.io. Entrega captura do sitio web posto en produción.
Apartado 4
O servidor por defecto aínda está activo e podemos acceder a través da IP do servidor web. Se deshabilitamos este sitio, Apache Server non atopa coincidencia. Entón escolle o primeiro Virtual Host definido no ficheiro de configuración.
Realiza os seguintes pasos:
- Deshabilita o sitio web por defecto. Deberás recargar a configuración.
- Na máquina anfitrión, abre unha ventá privada do navegador web (ou tamén podes baleirar a caché desde a configuración do navegador). No caso de non abrir unha privada pode ocorrer que quede en caché a páxina por defecto de Apache e non esteas vendo a versión do servidor.
- Escribe na URL a dirección IP da máquina virtual. Entrega captura onde se vexa que ca URL se mostra a páxina do noso Virtual Host.
Apartado 5
Imos ver algunha directiva bastante útil na definicións de Virtual Hosts.
Comezaremos polos alias. Con isto poderemos facer que varios nomes redirixan ao mesmo sitio web.
Realiza os seguintes pasos:
- Engade como alias do Virtual Host que creamos no paso anterior os nomes de dominio
dimension.192-168-56-56.nip.ioeportfolio.192-168-56-56.nip.io. Entrega captura do ficheiro de definición do Virtual Host. - Recarga a configuración de Apache.
- Comproba nun navegador do equipo anfitrión que se accede o sitio web dende
http://dimension.192-168-56-56.nip.ioehttp://portfolio.192-168-56-56.nip.io. Entrega capturas onde se vexa o correcto funcionamento destes dous nomes.
Apartado 6
Tamén é moi importante poder ubicar de xeito correcto os logs para poder encontrar erros ou realizar trazabilidade.
Realiza os seguintes pasos:
- Modifica o Virtual Host para que os logs de acceso se almacenen en
/var/log/apache2/estatico-access.log. Entrega captura do ficheiro de definición do Virtual Host. - Recarga a configuración de Apache.
- Accede dende un navegador web a
http://estatico.192-168-56-56.nip.io. - Abre o ficheiro cos logs de acceso
/var/log/apache2/estatico-access.log. Entrega captura onde se vexa que se realizou un acceso, o que fixemos no paso anterior.
Apartado 7
Neste último apartado veremos o bloque Directory. Este é bastante importante por temas de seguridade.
Realiza os seguintes pasos:
- Abre a URL
http://portfolio.192-168-56-56.nip.io/images/. Podemos observar que se nos listan os ficheiros do directorio. Isto pode comprometer a seguridade, xa que lle está dando información a un atacante. - Na definición do Virtual Host crea un bloque
Directorypara o directorio onde se encontra o sitio web/var/www/estatico/. Deshabilita listar o cartafol e que se sigan enlaces simbólicos. Engade tamén acceso libre. Entrega captura do ficheiro de definición do Virtual Host. - Recarga a configuración de Apache.
- Comproba agora que non se listan os ficheiros. Entrega captura da mensaxe que mostra o navegador.
- Copia o contido do ficheiro de definición do Virtual Host. Pode ser de utilidade para a definición de vindeiros Virtual Host a modo de template.