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
ienabled
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
iconf-enabled
hi tenim configuracions -
A
mods-available
imods-enabled
els mòduls disponibles -
A
sites-available
isites-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
ienabled
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
imodules-enabled
els mòduls disponibles -
A
sites-available
isites-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 delog
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 variableserver { 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