Héberger une page web (découverte)

Note : les objectifs opérationnels et pédagogiques de ce TP sont décrits en bas de la page.

Règles du jeu :

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.

  1. 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).

  2. 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/)

  3. Dans quel répertoire se trouve la configuration de votre serveur web ?

  4. Allez dans le répertoire où se trouve configuration du serveur web.

  5. Dans ce répertoire, quel fichier semble être le fichier de configuration principal de nginx ?

  6. Regardez le contenu de ce fichier et répondez aux questions suivantes :

    1. Par quel user sont exécutés les workers ?

    2. Dans quel fichier est inscrit le PID du processus principal de nginx ?

    3. Quel est le PID du processus principal de nginx ?

    4. 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".

    1. Quel user exécute le processus "master" ?

    2. Quel est le PID du processus "master" ?

    3. Quel user exécute les processus "worker" ?

    4. 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
    5. À 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é ?

  7. 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 :

    1. Quel symbole est utilisé pour commenter une ligne dans ce fichier de configuration ?
    2. À l'aide de la commande grep, affichez uniquement les lignes qui ne sont pas des commentaires.
    3. Dans quel répertoire se trouvent les pages web qui sont servies (dans cette configuration par défaut) ?
  8. Quel est le type des fichiers du sous-répertoire sites-enabled/ ?

  9. Quel est le lien entre les fichiers du sous-répertoire sites-enabled/ et les fichiers du sous-répertoire sites-available/ ?

  10. Questions d'anglais : que signifie available ? que signifie enabled ?

  11. Allez dans le répertoire dans lequel se trouvent les pages web qui sont servies dans la configuration par défaut.

  12. Ajoutez-y une page web test.html avec un peu de contenu et consultez la depuis votre navigateur.

  13. Dans quel fichier se trouvent les logs d'erreur et les logs d'accès au serveur (indication : regardez le fichier de configuration principal) ?

  14. 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).

  15. 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) ?

  16. 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 :