Note : les objectifs opérationnels et pédagogiques de ce TP sont décrits en bas de la page.
Règles du jeu :
- Cette page est une activité de découverte.
- Vous êtes censé·e trouver les réponses par vous même, juste en naviguant dans l'arborescence et en consultant des fichiers, de sorte à découvrir le fonctionnement de la configuration d'un serveur web.
- Vous n'êtes pas censé·e modifier les fichiers de configuration, seulement les consulter.
- Cette page n'est pas un questionnaire dont les réponses se trouvent sur le web, mais un petit jeu de piste à résoudre en vous promenant dans l'arborescence de votre conteneur.
- Prenez des notes.
Pour pouvoir servir une page web, il faut installer un serveur web. Il écoutera sur le port 80 (correspondant au protocole HTTP, voir la correspondance dans votre fichier /etc/services
).
Les deux serveurs web les plus utilisés sont (de loin) les logiciels libres nginx
et apache2
.
Installez le paquet nginx
(l'activité fonctionne aussi avec apache2
, mais nous conseillons nginx
pour tout le monde pour que vous puissiez échanger sur vos découvertes).
Visitez la page web proposée par le serveur (page par défaut). En l'absence de nom de domaine pointant sur votre adresse IP, il est possible de consulter une page web à partir de son adresse IPv6 en la mettant entre crochets : http://[<adresse_ipv6>]/
(note : si vous n'avez pas de connexion IPv6, transformez votre client SSH en proxy SOCKS et faites passer votre traffic HTTP à travers un tunnel SSH qui sort en salle TP ou utilisez le navigateur torbrowser https://www.torproject.org/)
Dans quel répertoire se trouve la configuration de votre serveur web ?
Allez dans le répertoire où se trouve configuration du serveur web.
Dans ce répertoire, quel fichier semble être le fichier de configuration principal de nginx
?
Regardez le contenu de ce fichier et répondez aux questions suivantes :
Par quel user sont exécutés les workers ?
Dans quel fichier est inscrit le PID du processus principal de nginx
?
Quel est le PID du processus principal de nginx
?
En prenant un peu d'avance sur la suite du cours, la commande
$ ps --forest -eo pid,user,command
dessine l'arborescence des processus en affichant leur PID et leur user. Le résultat de la commande précédente montre deux types de processus nginx, "master" et "worker".
Quel user exécute le processus "master" ?
Quel est le PID du processus "master" ?
Quel user exécute les processus "worker" ?
Quelle est la filiation entre ces processus ? Un rendu plus graphique mais moins précis de la commande précédente peut s'obtenir avec :
$ pstree -c
À votre avis, pourquoi nginx est-il organisé comme ça ? Pour quelle raison les workers sont-ils exécutés par un user non-privilégié ?
Ce fichier de configuration principal appelle d'autres fichiers de configuration grâce à la directive include
. Parmi eux, se trouvent les fichiers qui se trouvent dans le sous-répertoire sites-enabled/
. Dans ce répertoire se trouve une configuration par défaut. Consultez-le et répondez aux questions suivantes :
grep
, affichez uniquement les lignes qui ne sont pas des commentaires.Quel est le type des fichiers du sous-répertoire sites-enabled/
?
Quel est le lien entre les fichiers du sous-répertoire sites-enabled/
et les fichiers du sous-répertoire sites-available/
?
Questions d'anglais : que signifie available
? que signifie enabled
?
Allez dans le répertoire dans lequel se trouvent les pages web qui sont servies dans la configuration par défaut.
Ajoutez-y une page web test.html
avec un peu de contenu et consultez la depuis votre navigateur.
Dans quel fichier se trouvent les logs d'erreur et les logs d'accès au serveur (indication : regardez le fichier de configuration principal) ?
Consultez le fichier de log d'accès au serveur et retrouvez-y votre connexion à la page web que vous avez créé (note: rsyslog
doit être installé, ce que vous êtes censé·e avoir fait lors d'un TP précédent).
Comment renommer la page web test.html
pour qu'elle soit servie par défaut par le serveur (sans qu'il soit besoin de la nommer dans l'URL) ?
Quel mécanisme fait que cette page est préférée à la page d'accueil par défaut fournie par la distribution ?
Lorsque vous avez répondu à toutes ces questions et que vous hébergez sur votre conteneur une page web accessible sur internet, vous pouvez ajouter le tag web
et mettez l'URL de votre page sur votre page personnelle du wiki.
Objectifs du TP :