Salta el contingut

UD5 - Pràctica 1D - Llocs Virtuals en nginx

Quins fitxers estan implicats en la gestió de Hosts Virtuals en nginx?

Tots els fitxers de configuració que estroben a la carpeta sites-available. Posteriorment, s'hauran d'habilitar els llocs creant enllaços simbòlics (ln -s) des dels fitxers de sites-available a sites-enabled de les webs habilitades. Al contrari que en Apache, si la configuració es basa en els ports d'accés al servidor, no cladrà habilitar l'escolta d'aquests al fitxer ports.conf, perquè directament no existeix.

Configuració de Virtual Hosts mitjançant ports distints

Per als següents exemples anem a considerar la següent configuració:

  • Web tigres.com servida al port 8081
  • Web lleons.com servida al port 8082

Creació dels fitxers de configuració

Crearem dues configuracions de Virtual Host, primer la dels tigres:

Bash
sudo nano /etc/nginx/sites-available/tigres.com

En aquest fitxer escriurem, mínim:

tigres.com
server {
    listen 8081;
    server_name tigres.com;

    root /var/www/tigres;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

A continuació, la dels lleons:

Bash
sudo nano /etc/nginx/sites-available/lleons.com

En aquest fitxer escriurem, mínim:

lleons.com
server {
    listen 8082;
    server_name lleons.com;

    root /var/www/lleons;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Observeu que cadascuna aten en ports distints i que els fitxers de configuració en nginx poden tenir el nom que vullgam (no com en Apache, que havien de ser sí o sí .conf).

Creació de les webs

Primer haurem de crear un directori per a cada web, dins de la carpeta /var/www:

Bash
sudo mkdir -p /var/www/tigres
sudo mkdir -p /var/www/lleons

Podem crear una web senzilla mitjançant les següents comandes:

Bash
echo "<h1>Web de Tigres al port 8081</h1>" | sudo tee /var/www/tigres/index.html
echo "<h1>Web de Lleons al port 8082</h1>" | sudo tee /var/www/lleons/index.html

Finalment, ens assegurem que els propietaris i permissos són correctes:

Bash
sudo chown -R adminserver:adminserver /var/www/tigres /var/www/lleons
sudo chmod -R 755 /var/www/tigres /var/www/lleons

Habilitar les configuracions de Virtual Host

Amb la comanda a2ensite creem un enllaç dels fitxer de configuració de sites-available en sites-enabled:

Bash
sudo ln -s /etc/nginx/sites-available/tigres.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/lleons.com /etc/nginx/sites-enabled/

Finalment, reiniciem el servei i comprovem que les webs es serveixen:

Bash
sudo systemctl restart nginx

Si tot ha anat bé, les webs haurien de ser accessibles en:

  • TIGRES: http://IP-DEL-SERVER:8081
  • LLEONS: http://IP-DEL-SERVER:8082

Configuració de Virtual Hosts mitjançant nom

Haurem de canviar l'escolta dels llocs per el port que haviem canviat i deixar-ho de nou al 80 (listen).

La resta de les configuracions ja són correctes, perquè ja haviem posat la referència al nom del llocs (server_name).

Configurar noms de domini (DNS simulats)

  1. Editem el fitxer /etc/hosts:
    sudo nano /etc/hosts

  2. Afegim aquestes línies:
    IP_DEL_SERVER tigres.com
    IP_DEL_SERVER lleons.com

  3. Guardem i eixim.