Servidors Web. Apache. Configuració II

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

Seguim en la configuració del nostre servidor Apache. Farem que la nostra web de l'assignatura tingui un aspecte professional. L'associarem al domini www.iaw.org.

La web de l'assignatura: www.iaw.org. Utiltizar dominis en la xarxa local

actualització: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04

Anem a crear un nom de domini per a l'assignatura de IAW: www.iaw.org. Evidentment es tracta d'un domini local, que només és vàlid dins el nostre ordinador, o potser dins de la nostra xarxa local. Si fem una cerca per Internet, actualment el domini públic www.iaw.org està lliure.

El primer serà ficar una entrada en el fitxer /etc/hosts, que és el fitxer que associa IPs amb noms de màquina o domin. Afegeixo les següents línies a /etc/hosts:

127.0.0.2       www.iaw.org

En el cas de què tinguem una IP fixa, podem associar el domini www.iaw.org a la nostra IP. Això també val si un company vol accedir al nostre domini www.iaw.org des del seu ordinador:

192.168.1.9       www.iaw.org

El que fa el fitxer /etc/hosts és una traducció de IP a nom de domini, i això és el que fan els servidors DNS. Podem pensar que és un DNS local, i que no cal anar a mirar a Internet i a un servidor DNS remot aquests noms de domini.

A /etc/apache2/sites-available he de crear un fitxer de configuració. Reaprofitem el fitxer 000-default.conf:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/www.iaw.org.conf
$ sudo joe /etc/apache2/sites-available/www.iaw.org.conf

ServerName www.iaw.org
ServerAlias www.iaw.org
DocumentRoot /home/joan/IAW/html

Hem d'habilitar aquest site, creant un enllaç simbòlic a sites-enabled:

$ sudo a2ensite www.iaw.org.conf

Reiniciem el servei amb qualsevol d'aquestes comandes:

$ sudo systemctl restart apache2
$ sudo service apache2 restart
$ sudo /etc/init.d/apache2 restart

I ara accedim a

Ja funciona, però segurament encara tenim un problema de permisos (Permission Denied). Afegim les següents línies:

<Directory /home/joan/IAW/html>
Require all granted
</Directory>

Reiniciem i ara sí que ha de funcionar. Per tant, hem d'accedir a la web de l'assignatura de dues maneres diferents:

El fitxer www.iaw.org.conf ha quedat de la següent manera:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName www.iaw.org
        ServerAlias www.iaw.org
        DocumentRoot /home/joan/IAW/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /home/joan/IAW/html>
                Require all granted
        </Directory>
</VirtualHost>


Web de l'assignatura IAW d'un company

Aquesta prova la podeu fer amb el servidor d'un company (sabent quina és la IP, millor si és una IP fixa). I també es pot fer entre dues màquines virtuals.

Editem el fitxer /etc/hosts amb la IP del company (i momentàniament deshabilitem la nostra referència local).

192.168.0.34 www.iaw.org

i podem accedir al servidor del company. Recordem quin seria el procés:

  1. En el nostre client (Firefox) volem accedir a www.iaw.org
  2. El nostre fitxer /etc/hosts associa www.iaw.org a la IP 192.168.0.34
  3. Quan la petició arriba a la IP pel port 80, el servidor web localitza el fitxer index.html en la carpeta associada al site www.iaw.org, segons consta en els fitxers de configuració de l'Apache.
  4. La pàgina ja es pot servir en el camí invers fins arribar al client (el navegador web).

NOTA. També és important ficar els permisos correctes a la carpeta html/, o bé canviar-li el propietari. Recordem que l'accés al recurs web es fa a través de l'usuari www-data.

Utilitzar https://www.iaw.org

De la mateixa manera que ja funciona https;//localhost/iaw, i també http://www.iaw.org, ara ja estàs en condicions que configurar el domini www.iaw.org sota https.

Ho deixem per l'alumne.

Sortir a Internet des d'una ADSL/fibra domèstica

Tenim configurats el domini www.iaw.org en la xarxa local. Un pas més endavant seria accedir a aquests dominis des de fora de l'institut, des d'internet. Si faig una petició des de casa, el camí seria:

$ ping www.iaw.org
PING www.iaw.org (208.87.32.69) 56(84) bytes of data.
64 bytes from web01.hostingnet.com (208.87.32.69): icmp_seq=1 ttl=252 time=200 ms

Com veiem la IP 208.87.32.69 és una IP pública, que no és de l'institut, i per tant segur que no ho podem fer.

Per tant, el primer objectiu seria registrar un domini (per exemple, www.iawbalmes.org) a un registrador de dominis, per exemple Nominalia o Arsys.es. (Mirar el preu de registrar el domini i el parking, sense hosting). No necessitem hosting, doncs el hosting serem nosaltres mateixos.

Un cop tenim registrat el domini, hem de configurar els DNS per a aquest domini (es fa dins d'Arsys.es, en la pestanya DNS). El DNS el que fa és que una persona quan fa ping www.iawbalmes.org rebi la informació de la IP. Aleshores el que s'hauria de posar és la IP pública de l'institut.

$ ping www.jaumebalmes.net
PING www.jaumebalmes.net (80.25.160.251) 56(84) bytes of data.
64 bytes from 251.Red-80-25-160.staticIP.rima-tde.net (80.25.160.251): icmp_seq=1 ttl=252 time=140 ms

Quan la petició arriba a l'institut, els switchs de l'institut han de saber encaminar la petició al servidor Apache on està allotjada la pàgina. I el firewall ha d'estar ben configurat per tal de què el paquet IP no es perdi.

Servidor Apache a casa. IP dinàmica. Utilitzar un servei de DNS dinàmic

És més didàctic fer aquesta pràctica de de casa (on tens ADSL/fibra). El mateix portàtil/ordinador on fas les pràctiques et serveix.

En el cas de què aquesta pràctica la vulguis fer des de casa no tens una IP pública, sinó dinàmica, i necessites un servei com no-ip.org o dyndns.org que tradueix de forma dinàmcia noms de domini i IP's (però això ja ho veurem més endavant).

En els DNS d'Arsys no podem ficar una IP fixa, doncs no la tenim, hem de ficar la IP actual, que és dinàmcia. Per tal de solventar aquest problema, aniríem a www.dyndns.org, i ens regitrem. El producte que necessitem és el gratis: DynDNS Free (NOTA: millor utilitzar no-ip.org, doncs ara mateix DynDNS ja no ofereix aquest servei de forma gratuïta).

Registraríem un New Host Name, per exemple: iawbalmes.dyndns.org. En el moment de registrar-nos hem de ficar la IP actual del router (la que ens proposa). Si vull saber quina és la meva IP pública actual també podem executar des de la consola:

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

Ara anem a Arsys, i en l'apartat DNS del nostre domini www.iawbalmes.net, diem que el DNS és iawbalmes.dyndns.org.

Anem a veure ara com funciona una petició http:

Ara bé, la nostra IP és dinàmica. Què passa quan el nostre proveïdor (Movistar, Jazztel,...) ens canvia la IP? Doncs que la cadena es trenca. Per tant, hem de dir a dyndns.org quina és la nostra IP actual. Això es pot fer de forma dinàmica mitjanḉant un dimoni que sempre va mirant la IP i que notifica a dyndns els canvis que puguin haver, tal com s'explica a DynDNS. En el cas d'Ubuntu:

$ sudo apt-get install ddclient

i té un fitxer de configuració a /etc/ddclient.conf.

Per configurar el servei no-ip està explicat en aquest enllaç: Update_Abril_2014._noip.com

Configuració del Router. Taules NAT

Configuració del router Comtrend CT-5365 (un router comú en ADSL domèstica)

Si vull accedir a la URL http://wiki.joanillo.org estic fent una petició a la IP 87.221.76.91 pel port 80 (protocol http):

$ PING wikijoan.dyndns.org (87.221.76.91) 56(84) bytes of data.

Però a casa no tenim un ordinador, sinó varis ordinadors i dispositius connectats a Internet. Només un d'ells és el servidor Apache on està hostatjada la pàgina web que vull que surti a l'exterior. Dins del Router hi ha la configuració de les taules NAT, que diuen cap a on s'ha de redirigir una petició depenent del port. Així doncs, he d'afegir una nova entrada a les taules NAT i dir que les peticions pel port 80 vagin a la IP, per ex, 192.168.0.25 (evidentment és important tenir IP fixes en la xarxa local). Si tinc altres serveis a la xarxa (servidor de streaming, SSH, FTP, SGBD...) no cal que tots els servidors estiguin en la mateixa màquina.

Resumint, podem accedir a la wiki de joanillo.org des de 3 url's diferents:

Servidor web amb una Raspberry Pi

Ara l'alumne ja no té cap excusa per poder realitzar aquesta pràctica optativa, ja que es pot realitzar amb la Raspberry Pi i els avantatges que comporta (preu baix, no ocupa espai, consumeix molt poc corrent). Hi ha molts enllaços on s'explica com fer-ho. Per ex,

En aquest anterior enllaç s'utilitza apache2, però recordem que hi ha altres servidors web com ara lighttpd.


creat per Joan Quintana Compte, setembre 2018

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines