Salta el contingut

MP08 - UF1: Servidors web i de transferència de fitxers

Configuració inicial del Servidor - Apache2 i Nginx (ii)

Estructura de directoris i fitxers

  • El directori base és /etc/apache2/

    Possible contingut del directori
    -rw-r--r-- 1 root root  7224 month day hour apache2.conf
    drwxr-xr-x 2 root root  4096 month day hour conf-available
    drwxr-xr-x 2 root root  4096 month day hour conf-enabled
    -rw-r--r-- 1 root root  1782 month day hour envvars
    -rw-r--r-- 1 root root 31063 month day hour magic
    drwxr-xr-x 2 root root 12288 month day hour mods-available
    drwxr-xr-x 2 root root  4096 month day hour mods-enabled
    -rw-r--r-- 1 root root   320 month day hour ports.conf
    drwxr-xr-x 2 root root  4096 month day hour sites-available
    drwxr-xr-x 2 root root  4096 month day hour sites-enabled
    
  • El fitxer principal és apache2.conf

    • Dins hi trobem el seu conjunt de directives que defineixen el comportament
    • Els comentaris són per línia i van amb # al principi
    • Si hi ha directives no especificades, agafen el valor per defecte definit en la compilació.
    • Amb la directiva Include es carreguen altres fitxers de configuració
  • Dins de ports.conf s'especifica la configuració de xarxa pel procés (ports i IPs/interfícies per les que s'atenen les peticions)

    Possible contingut del fitxer
    # If you just change the port or add more ports here, you will likely also
    # have to change the VirtualHost statement in
    # /etc/apache2/sites-enabled/000-default.conf
    
    Listen 80
    
    <IfModule ssl_module>
            Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
            Listen 443
    </IfModule>
    
  • Després tenim 3 parelles de carpetes amb el mateix nom però acabades amb enabled o available

    Directoris available i enabled
    drwxr-xr-x 2 root root  4096 month day hour conf-available
    drwxr-xr-x 2 root root  4096 month day hour conf-enabled
    drwxr-xr-x 2 root root 12288 month day hour mods-available
    drwxr-xr-x 2 root root  4096 month day hour mods-enabled
    drwxr-xr-x 2 root root  4096 month day hour sites-available
    drwxr-xr-x 2 root root  4096 month day hour sites-enabled
    
    • Apache funciona de forma que podem preparar coses (mòduls, configuracions, etc) però activar-les només si ens interessa (a partir de symlinks, ho veurem més endavant)

      • A conf-available i conf-enabled hi tenim configuracions

      • A mods-available i mods-enabled els mòduls disponibles

      • A sites-available i sites-enabled les diferentes configuracions pels llocs web - hosting virtual

  • El directori base és /etc/nginx/

    Possible contingut del directori
    drwxr-xr-x 2 root root 4096 month day hour conf.d
    -rw-r--r-- 1 root root 1125 month day hour fastcgi.conf
    -rw-r--r-- 1 root root 1055 month day hour fastcgi_params
    -rw-r--r-- 1 root root 2837 month day hour koi-utf
    -rw-r--r-- 1 root root 2223 month day hour koi-win
    -rw-r--r-- 1 root root 3957 month day hour mime.types
    drwxr-xr-x 2 root root 4096 month day hour modules-available
    drwxr-xr-x 2 root root 4096 month day hour modules-enabled
    -rw-r--r-- 1 root root 1447 month day hour nginx.conf
    -rw-r--r-- 1 root root  180 month day hour proxy_params
    -rw-r--r-- 1 root root  636 month day hour scgi_params
    drwxr-xr-x 2 root root 4096 month day hour sites-available
    drwxr-xr-x 2 root root 4096 month day hour sites-enabled
    drwxr-xr-x 2 root root 4096 month day hour snippets
    -rw-r--r-- 1 root root  664 month day hour uwsgi_params
    -rw-r--r-- 1 root root 3071 month day hour win-utf
    

    Pots accedir a la documentació sobre l'estructura de directoris aquí

  • El fitxer principal és nginx.conf

    • Dins hi trobem el seu conjunt de directives que defineixen el comportament
    • Els comentaris van amb # al principi del comentari
    • Si hi ha directives no especificades, agafen el valor per defecte definit en la compilació.
    • Amb la directiva include es carreguen altres fitxers de configuració
  • Després tenim 2 parelles de carpetes amb el mateix nom però acabades amb enabled o available

    Directoris available i enabled
    drwxr-xr-x 2 root root 4096 month day hour modules-available
    drwxr-xr-x 2 root root 4096 month day hour modules-enabled
    drwxr-xr-x 2 root root 4096 month day hour sites-available
    drwxr-xr-x 2 root root 4096 month day hour sites-enabled
    
    • Nginx funciona de forma que podem preparar coses (mòduls, configuracions, etc) però activar-les només si ens interessa (a partir de symlinks, ho veurem més endavant)

      • A modules-available i modules-enabled els mòduls disponibles

      • A sites-available i sites-enabled les diferents configuracions pels llocs web - hosting virtual

Directives principals

  • Les dues primeres directives que ens han de servir són:

    • DocumentRoot: indica el directori on trobarem els fitxers del nostre site/lloc web. Pot ser diferent per cada configuració de site - hosting virtual.

    • DirectoryIndex: indica una llista de recursos, o fitxers, a buscar, quan una petició client sol·licita una URL sense especificar el recurs.

    Exemples: fixeu-vos en els fitxers on apareix cadascuna de les Directives
    isard@ubuntu:/etc/apache2$ grep -r -e DocumentRoot -e DirectoryIndex /etc/apache2
    /etc/apache2/sites-available/000-default.conf:  DocumentRoot /var/www/html
    /etc/apache2/sites-available/default-ssl.conf:  DocumentRoot /var/www/html
    /etc/apache2/mods-available/dir.conf:           DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
    
  • La directiva <Directory path> . . . </Directory> ens permet indicar una sèrie de paràmetres o configuracions per un directori en concret del sistema de fitxers.

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Apache, per defecte, no permet l'accés al directori de fitxers del sistema, excepte al directori /var/www

  • Apache ofereix un mecanisme per a emmagatzemar informació en variables especials que anomenem variables d'entorn.

    S'utilitzen en el control d'accés al servidor amb la comanda apache2ctl i els fitxers de log entre d'altres.

    Es troben definides al fitxer envvars.

  • Per defecte els fitxers de log s'emmagatzemen a /var/log/apache2/

    isard@ubuntu:/etc/apache2$ ls -l /var/log/apache2/
    -rw-r----- 1 root adm 1174 month day hour access.log
    -rw-r----- 1 root adm 1102 month day hour error.log
    -rw-r----- 1 root adm    0 month day hour other_vhosts_access.log
    
  • Les dues primeres directives que ens han de servir són:

    • root: indica el directori on trobar els fitxers del nostre site/lloc web. Pot ser diferent per cada configuració de site - hosting virtual.

    • index: indica una llista de recursos, o fitxers, a buscar quan una petició client sol·licita una URL sense especificar el recurs.

    Exemples: fixeu-vos en els fitxers on apareix cadascuna de les Directives
    isard@ubuntu:/etc/nginx$ grep -r -e "root " -e "index " /etc/nginx
    /etc/nginx/sites-available/default:     root /var/www/html;
    /etc/nginx/sites-available/default:     index index.html index.htm index.nginx-debian.html;
    /etc/nginx/sites-available/default:#    root /var/www/example.com;
    /etc/nginx/sites-available/default:#    index index.html;
    /etc/nginx/snippets/fastcgi-php.conf:fastcgi_index index.php;
    
  • La directiva server { . . . } ens permet indicar una sèrie de paràmetres o configuracions per un hosting en concret.

    server {
            server_name     domini.cat;
            root            /var/www/html;
            access_log      /var/log/nginx/domini.cat/access.log;
            error_log       /var/log/nginx/domini.cat/error.log;
    }
    
  • La directiva location { . . . } ens permet indicar una sèrie de paràmetres o configuracions per un alias o directori virtual en concret.

    location /ara {
            # /ara és ruta relativa al sistema de fitxers.
            #      Per tant, apunta a /var/www/ara
            root    /var/www;
    }
    location  /despres {
            # Indiquem la ruta absoluta del directori al sistema de fitxers
            alias   /var/www/despres;
    }
    
  • Nginx ofereix unes variables per utilitzar dins els fitxers de configuració per a personalitzar les rutes, etc.

    Exemple d'ús de variable
    server {
        listen 80 default_server;
        root /var/www/$host;
    }
    

    D'aquesta manera, si accedim a la URL http://www.domini.cat/directori/fitxer.html, el servidor web ens servirà el fitxer /var/www/www.domini.cat/directori/fitxer.html.

  • Per defecte els fitxers de log s'emmagatzemen a /var/log/nginx/

    isard@ubuntu:/etc/nginx$ ls -l /var/log/apache2/
    -rw-r----- 1 www-data adm 342 month day hour access.log
    -rw-r----- 1 www-data adm 139 month day hour error.log