:: Enseignements :: ESIPE :: E3INFO :: 2007-2008 :: Réseau ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | TP HTTP |
Le but de ce TP est de configurer un serveur Apache.
Vous devrez rendre par courrier électronique à tous les chargés de TD, pour le vendredi 4 avril 2008, un rapport par binôme.
Démarrage du serveur
Configuration de base
Le logiciel serveur Apache pour Linux utilise les répertoires suivants :
- le programme serveur apache2 est installé dans /usr/sbin.
Quelles sont les différentes options de la commande apache2ctl et à quoi correspondent-elles?
- les fichiers de configuration sont /etc/apache2/apache2.conf et ceux qu'il inclue. Pour retrouver l'occurence d'une directive, vous pourrez faire grep -r Directive /etc/apache2.
Quelle directive précise la racine de l'arborescence de fichiers qui est exposée? Celle qui précise le port d'attachement du serveur?
- les pages HTML sont rangées dans /var/www/apache2-default.
Quel fichier correspond à la page de démarrage par défaut? Quelles sont les permissions associées? au répertoire des pages HTML?
- le répertoire /var/log/apache2 contient les fichiers log du serveur (journal d’accès et journal d’erreurs).
Quelles sont les trois dernières requêtes effectuées sur le serveur ? Précisez les méthodes http associées et le client ayant émis la requête.
Requêtes diverses
On utilisera la commande netcat serveur port pour faire des requêtes via une socket. Pour plus de détail quant à la syntaxe HTTP, voyez la documentation de Apache.
- Testez les requêtes HEAD et TRACE sur votre serveur.
- Testez également les requêtes conditionnelles If-modified-since pour la
date et If-none-match pour l'en-tête ETag.
Expliquez le comportement de ces diverses requêtes.
- Testez des requêtes par le proxy de l'université proxy.univ-mlv.fr (par exemple en demandant la page http://www.univ-mlv.fr, puisque le proxy n'a pas accès à votre serveur). Dans ce cas, l'hôte doit apparaître dans l'URL. Attention, le proxy utilise le port 3128.
Connexions persistantes
- Testez au moyen de la commande netcat si votre serveur supporte les connexions
persistantes et le pipeline de requêtes (grâce à une redirection).
- Modifiez le fichier de configuration du serveur
afin que celui-ci ferme les connexions après chaque requête. Testez cette nouvelle
configuration.
- Vérifiez que la version 1.0 de HTTP ne supporte pas par défaut les connexions
persistantes.
- Testez l'en-tête Connection: Keep-alive.
Arborescence de documents
- Modifiez la racine du serveur pour qu'elle pointe
sur le répertoire /test (à créer éventuellement).
- Ajoutez sous cette nouvelle racine une page index.html.fr ayant :
Testez l'accès à cette nouvelle page.
Langage préféré
- Pour que votre page soit préférée à celle par défaut, le serveur utilise un
gestionnaire de négociation type-map.
Quelle directive met en place ce gestionnaire?
- L'association
se fait ensuite via un fichier d'associations qui dans la configuration par défaut
est le fichier sans extension de langue (index.html) ou le fichier avec
l'extension .var (index.html.var).
Quelle directive précise cette extension?
- Modifiez la configuration de votre navigateur et le fichier d'association
index.html pour que votre page soit choisie plutôt que celle par défaut.
Suivez avec wireshark le flux TCP envoyé par votre navigateur quand vous vous connectez à cette page.
Comment se passe cette négociation?
Alias
- Ouvrir la page http://localhost/manual/en. D'où vient ce contenu?
- Tester un alias permettant l’accès au répertoire /test à partir de l’URL http://localhost/test. Comment avez-vous procédé ?
Redirection
- Retrouvez dans le fichier de configuration par défaut l'exemple de redirection. Le
décommenter et le modifier pour que l'URL http://localhost/i2000 pointe
sur le serveur d'Ingénieurs 2000 http://www.ingenieurs2000.com.
Suivez avec wireshark le flux TCP.
Comment marche ce mécanisme?
Serveur virtuel
- Ajoutez une directive VirtualHost afin que les pages retournées lorsque l'on
accède à votre serveur avec l'URL http://localhost soient différentes
de celles qui sont retournées lorsque l'on utilise le nom de la machine (pensez à enlever la
configuration du proxy).
Comment marche ce mécanisme?
Concurrence
- Pour pouvoir répondre en parallèle à plusieurs requêtes HTTP le serveur utilise par
défaut plusieurs processus.
Repérez au moyen de la commande ps -C httpd le nombre
de processus qui, par défaut, sont en attente de connexion.
- En fait, ces processus sont
gérés par une piscine (pool) de processus qui fait varier le nombre de processus en
fonction des demandes.
Retrouvez dans le fichier de configuration les directives
correspondant à la piscine de processus et modifiez le nombre de processus disponibles au
démarrage du serveur.
- Expliquez à quoi correspondent les différentes directives
utilisées pour gérer la piscine de processus.
© Université de Marne-la-Vallée