WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB Installation et administration d un serveur web Module 25793 TP A5 (1/2 valeur) Chapitre 7 Serveurs virtuels basés sur IP ou sur port
Le plus grand soin a été apporté à la réalisation de ce support pédagogique afin de vous fournir une information complète et fiable. Cependant, le Cnam Champagne-Ardenne n'assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation. Les exemples ou programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théoriques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle. Le Cnam ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l'utilisation de ces exemples ou programmes. Tous les noms de produits ou autres marques cités dans ce support sont des marques déposées par leurs propriétaires respectifs. Ce support pédagogique a été rédigé par Michel Melcior, enseignant vacataire au Cnam Champagne-Ardenne. Copyright 2001-2003 Centre d'enseignement A Distance du Cnam Champagne-Ardenne. Tous droits réservés. Toute reproduction, même partielle, par quelque procédé que ce soit, est interdite sans autorisation préalable du Cnam Champagne-Ardenne. Une copie par xérographie, photographie, film, support magnétique ou autre, constitue une contrefaçon passible des peines prévues par la loi, du 11 mars 1957 et du 3 juillet 1995, sur la protection des droits d'auteur.
LES SERVEURS VIRTUELS BASES SUR IP OU SUR PORT 1. OBJECTIFS En fin de séance, vous devriez être capable : De maîtriser l'hébergement de sites multiples, sur le même serveur, en utilisant des adresses IP différentes 2. INTRODUCTION Apache est capable de faire fonctionner des serveurs web virtuels. Vous pouvez, sur une seule machine, héberger plusieurs sites différents qui seront vu de l'extérieur comme des serveurs web distincts. Pourtant, un seul processus Apache est lancé au départ. C'est le concept de serveur virtuel. Ce principe est utilisé par les sociétés spécialisées dans les hébergements de sites web. Puisque plusieurs serveurs virtuels sont accessibles sur une seule machine, il ne reste qu'à définir un critère d'accès qui permet de sélectionner le serveur auquel on veut s'adresser. Il existe trois méthodes de sélection : Par adresse IP. La machine dispose de plusieurs adresses IP et suivant l'adresse utilisée, on accède au serveur web choisi. Par port. Les serveurs web virtuels écoutent sur des ports différents. Par nom. Si le navigateur supporte le protocole HTTP1.1 (ce qui est le cas de tous les navigateurs actuels) c'est le nom du serveur qui sert pour la sélection. La séquence d'aujourd'hui est consacrée à l'étude des deux premiers modes de fonctionnement. 3. HEBERGEMENTS MULTIPLES BASES SUR IP. 3.1. CREATION D'UN ALIAS IP. Il faut dans un premier temps définir une adresse IP supplémentaire (alias IP) pour votre machine. 1. Ouvrez une console de commandes. Vous allez attribuer une nouvelle adresse à l'interface logicielle de bouclage (lo) avec la commande suivante : ifconfig lo:0 192.168.30.1 Cette commande attribue l'adresse 192.168.30.1 à l'alias numéro 0 de l'interface logicielle lo. La nouvelle adresse apparaîtra avec la commande : ifconfig Qui donne la liste de toutes les interfaces réseaux et alias IP. Installation et administration d un serveur web 1
Vous devriez avoir un résultat qui ressemble à l'exemple ci-dessous : eth0 Lien encap:ethernet HWaddr 00:50:DA:74:96:59 inet adr:192.168.1.1 Bcast:192.168.30.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Paquets Reçus:697 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:434 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:100 Interruption:11 Adresse de base:0xe800 lo Lien encap:boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 Paquets Reçus:80 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:80 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:0 lo:0 Lien encap:ethernet HWaddr 00:50:DA:74:96:59 inet adr:192.168.30.1 Bcast:192.168.30.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interruption:11 Adresse de base:0xe800 Dans cet exemple, la machine possède deux adresses IP (inet adr) pour la même interface: 127.0.0.1/8 adresse principale. 192.168.30.1/24 alias Vous pouvez désactiver votre alias avec la commande : ifconfig lo:0 down Si vous possédez une carte réseau ethernet (eth0), vous pouvez tester cette commande avec la syntaxe : ifconfig eth0:0 192.168.30.1 Attention, choisissez eth0 ou lo mais n'attribuez pas la même adresse IP aux deux interfaces. Serveurs virtuels basés sur IP ou sur port 2
Une remarque, ces modifications ne seront pas sauvegardées lors d'une mise hors tension de votre machine. Si vous souhaitez conserver ces réglages, ajoutez la ligne de commande à la fin du fichier : /etc/rc.d/rc.local 2. Lancez maintenant la commande ifconfig sans arguments pour obtenir des informations sur votre configuration TCP/IP. 3. Testez le fonctionnement avec la commande ping: ping 127.0.0.1 ping 192.168.30.1 (test de votre adresse ip de bouclage). (test de votre alias ip). Sous Linux, le ping doit être interrompu avec CTRL+C. 4. Dans le fichier /etc/hosts ajoutez la ligne : 192.168.30.1 web2 5. Toujours dans ce même fichier, ajoutez le nom web3 à la fin de la ligne 127.0.0.1... 3.2. CONFIGURATION D'APACHE. La directive qui va vous permettre de créer un serveur virtuel s'appelle VirtualHost. Directive : VirtualHost Syntaxe : <VirtualHost adresse[:port]>... </VirtualHost> Contexte : configuration serveur C'est une directive conteneur. Toutes les directives encadrées par ce conteneur vont définir les propriétés du serveur virtuel. Exemples : On définit un serveur virtuel pour les requêtes destinées à l'adresse 192.168.10.3 (racine des documents dans /home/www2, le serveur s'appelle web2, les fichiers journaux sont w2-error_log et w2-access_log). <VirtualHost 192.168.10.3> ServerAdmin webmaster@w2 DocumentRoot /home/www2 ServerName w2 ErrorLog logs/w2-error_log CustomLog logs/w2-access_log common </VirtualHost> On définit un serveur virtuel pour les requêtes destinées à l'adresse 192.168.20.5 sur le port 8000 Installation et administration d un serveur web 3
<VirtualHost 192.168.20.5:8000>... </VirtualHost> Par défaut, Apache écoute sur toutes les interfaces réseau (eth0, lo...) sur le port défini par la directive port (80 habituellement). Si vous souhaitez qu'apache se mette à l'écoute sur une certaine adresse à un autre port, vous devez le déclarer avec la directive listen. Cette directive devra être utilisée dans le cas d'un serveur virtuel à l'écoute d'un port différent de celui déclaré par la directive port (80 par défaut). Directive: Listen Syntaxe : Listen [adresseip:]numéroport Contexte : configuration serveur Vous pouvez placer plusieurs directives listen dans le fichier de configuration d'apache. Si vous souhaitez qu'apache se mette à l'écoute d'un port particulier sur toutes les interfaces, ne précisez pas d'adresse IP à la suite de listen. Exemple : listen 8080 Si vous souhaitez qu'apache se mette à l'écoute sur un port particulier à une certaine adresse IP, précisez la. Exemple : listen 192.168.50.22:8000 4. RESUME. Le tableau ci-dessous (à compléter par vos soins) résume les notions abordées dans cette séance. Directive Apache Fonction VirtualHost Listen Serveurs virtuels basés sur IP ou sur port 4
ifconfig ping 5. TRAVAIL PERSONNEL. Vous allez créer deux serveurs virtuels en plus de votre serveur web principal. Premier serveur virtuel : Ce serveur virtuel sera à l'écoute du port 80 par défaut à l'adresse 192.168.30.1. La racine de ses documents sera placée dans /home/web2 Les fichiers journaux seront nommés web2-error_log et web2-access_log Il s'appellera web2 et sera géré par webmaster@web2 Placez une page d'accueil web2 Deuxième serveur virtuel : Ce serveur virtuel sera à l'écoute du port 8000 à l'adresse 127.0.0.1. La racine de ses documents sera placée dans /home/web3 Les fichiers journaux seront nommés web3-error_log et web3-access_log Il s'appellera web3 et sera géré par webmaster@web3 Placez une page d'accueil web3 Testez vos serveurs virtuels avec le navigateur de votre choix. Installation et administration d un serveur web 5
6. ELEMENTS DE CORRECTION. Listen 192.168.30.1:80 Listen 127.0.0.1:8000 <VirtualHost 192.168.30.1:80> ServerAdmin webmaster@web2 DocumentRoot /home/web2 ServerName web2 ErrorLog logs/web2-error_log CustomLog logs/web2-access_log common </VirtualHost> <VirtualHost 127.0.0.1:8000> ServerAdmin webmaster@web3 DocumentRoot /home/web3 ServerName web3 ErrorLog logs/web3-error_log CustomLog logs/web3-access_log common </VirtualHost> On n'oubliera pas les conteneurs pour /home/web2 et /home/web3! Serveurs virtuels basés sur IP ou sur port 6