Recycler des adresses IP avec Apache
ArticleCategory: [Choose a category for your article]
System Administration
AuthorImage:[Here we need a little image form you]
TranslationInfo:[Author and translation history]
original in en Atif Ghaffar
en to fr Emmanuel Valentin
AboutTheAuthor:[A small biography about the author]
Je vie et travaille en Suisse comme administrateur web et unix.
Mes passions incluent Linux, unix, Perl, Apache et les logiciels GPL.
Plus de détails sur moi peuvent être trouvés sur ma homepage
Abstract:[Here you write a little summary]
Cet article explique comment servir plusieurs serveur web en utilisant la même adresse IP avec Apache sur Unix/Linux. Cet article suppose que le lecteur a quelques connaissancesde Apache, des DNS et de unix.
Les publics concernés par cet article sont les ISP (fournisseurs de service internet), les administrateurs système et quiconque interessé par lire et apprendre.
ArticleIllustration:[This is the title picture for your article]
ArticleBody:[The article body]
Pourquoi devrait on recycler des adresses IP?
Le recyclage d'adresses IP est utile pour de nombreuses raisons.
- on peut être rapidement être à cours d'adresses IP
- on peut n'avoir à disposition qu'une adresse IP (mon cas)
- L'ajout d'interfaces sur le serveur pour utiliser
plusieurs adresses IP prend beaucoupd de temps à l'administrateur système.
Comment recycler des adresses IP?
Avec Apache, il est simple de fournir plusieurs domaine avec une seule adresse IP.
Pour cet article, nous supposerons que l'adresse IP est 192.168.1.1, et que le nom de serveur est hometranet.home.
Ajoutez simplement une ligne comme celle-ci dans votre fichier httpd.conf
NameVirtualHost 192.168.1.1:80
Ensuite nous ajoutons 3 serveurs virtuels utilisant la même adresse IP
#Serveur pour les fichiers unix
ServerName unix.hometranet.home
DocumentRoot /www/unix/html
ScriptAlias /cgi-bin/ /www/unix/cgi-bin/
TransferLog /www/unix/logs/access_log
ErrorLog /www/unix/logs/error_log
#Serveur pour le PERL
ServerName perl.hometranet.home
DocumentRoot /www/perl/html
ScriptAlias /cgi-bin/ /www/perl/cgi-bin/
TransferLog /www/perl/logs/access_log
ErrorLog /www/perl/logs/error_log
#Ici nous servons des infos sympas relatives à Apache
ServerName apache.hometranet.home
DocumentRoot /www/apache/html
ScriptAlias /cgi-bin/ /www/apache/cgi-bin/
TransferLog /www/apache/logs/access_log
ErrorLog /www/apache/logs/error_log
Donc, en utilisant une adresse IP, nous gérons facilement 3 différents serveurs virtuels.
Ensuite, ajoutez des enregistrements CNAMES ou A pour ces
noms dans le fichier de description de zone de votre DNS
et n'oublier pas incrementer le numéro de série :)
Par exemple; dans mon /var/named/hometranet.home.fwd, j'ajouterais
perl.hometranet.home. IN A 192.168.1.1
apache.hometranet.home. IN A 192.168.1.1
unix.hometranet.home. IN A 192.168.1.1
Attention:
Si vous accéder à ce serveur par un nom différents de ceux spécifiés dans la configuration des serveurs virtuels, c'est le premier serveur virtuel qui
répondra.
Avant Apache 1.3.x, le dernier serveur aurait répondu.
Par example: Si ce serveur s'appele madmag, un accès à http://madmag.hometranet.home donnera le même résultat qu'un accès à unix.hometranet.home.
Utilisation de jokers, noms de serveur dynamiques
C'est une partie très pratique. Apache permet l'utilisation de joker dans la définition des noms de serveurs.
Cela veut dire que vous pouvez spécifier un domaine *.home.hometranet.home. Dans ce cas, tous les appels à
user1.home.hometranet.home, user2.home.hometranet.home, user3.home.hometranet.home,etc
répondrons.
Exemple:
#Serveur pour les users
ServerName home.hometranet.home
ServerAlias *.home.hometranet.home
DocumentRoot /www/home/html
TransferLog /www/home/logs/access_log
ErrorLog /www/home/logs/error_log
et une entrés dans le fichier des zones nommées.
*.home.hometranet.home. IN A 192.168.1.1
Note: Cette astuce ne fonctionnera pas si vous utilisez le serveur DNS de Microsoft. Apparement, celui-ci refuse les jokers dans les noms de serveurs.
(Mais vous n'en utilisez pas, n'est ce pas??)
J'ai écrit un petit système permettant à des utilisateurs
sur le réseau d'ajouter leur CV dans une base de données, et en utilisant
l'astuce ci-dessus, leurs CV étaient accessibles par
http://LeurNomDUtilisateur.cv.developer.ch.
Ici se trouve le fichier de configuration plus complet que j'ai séparé de mon fichier httpd.conf.
Celui ci est actuellement sur mon serveur.
Pour inclure ce fichier dans le fichier httpd.conf principal, vous pouvez utiliser l'instruction Include dans votre fichier httpd.conf principal:
Include "/etc/vhosts.conf"
Informations supplémentaires
-
[Apache name-based Virtual Host Support]
-
http://www.apache.org/docs/vhosts/name-based.html
-
[Apache Virtual Host documentation]
-
http://www.apache.org/docs/vhosts/index.html
- [An In-Depth Discussion of Virtual Host Matching]
-
http://www.apache.org/docs/vhosts/details.html