Apache supporte en standard la gestion des domaines virtuels. C'est d'ailleurs le seul programme pour lequel je recommande d'utiliser le syst�me de gestion des domaines virtuels fourni avec. Lorsque vous lancez un programme par l'interm�diaire d'inetd, il y a un co�t suppl�mentaire, puisque le programme doit d�marrer � chaque fois qu'il y a une demande de connexion, et vous obtenez des temps de r�ponse beaucoup plus longs, inacceptables pour le web. Apache int�gre �galement un m�canisme pour stopper les connexions lorsqu'elles sont trop nombreuses.
Comme il est simplement indiqu� ci-dessus, rendre virtuel Apache avec virtuald est une tres mauvaise id�e. Le but de virtuald est de combler la lacune des serveurs qui n'ont pas leur propre systeme interne pour faire ce travail. Virtuald n'est pas fait pour remplacer du bon code qui remplit d�j� la t�che.
Ce qui suit ne restera pas ici, c'est pour expliquer � ceux qui sont assez idiots pour le faire.
�ditez /etc/inetd.conf
vi /etc/inetd.conf # Ajouter cette ligne www stream tcp nowait www /usr/local/bin/virtuald \ virtuald /virtual/conf.www httpd -f /var/www/conf/httpd.conf
�ditez /var/www/conf/httpd.conf
vi /var/www/conf/httpd.conf # O� l'emplacement des fichiers de configuration d'Apache Il doit y avoir : ServerType standalone Remplacez-le par : ServerType inetd
Ensuite, configurez chaque cas du serveur Apache comme si vous n'aviez qu'un seul domaine.
Un fichier httpd.init n'est pas n�c�ssaire si le serveur est lanc� par inetd.
Apache a trois fichiers de configuration access.conf
, httpd.conf
et srm.conf
. De nouvelles versions d'Apache ont rendues les trois
fichiers de configuration inutiles. Ainsi, je trouve que s�parer en trois
sections la configuration la rend plus simple � g�rer, donc je garderai
ce style dans le HOWTO.
Ce fichier de configuration est utilis� pour contr�ler l'acc�s aux r�pertoires dans la structure du r�pertoire web. Voici un exemple de fichier de configuration qui montre comment avoir plusieurs options pour chaque domaine.
# /var/www/conf/access.conf: Configuration des acc�s globaux # Les options sont herit�es du r�pertoire pr�cedent # Mettre les options par d�faut pour le r�pertoire principal <Directory /> AllowOverride None Options Indexes </Directory> # Cr�er un r�pertoire proteg� par mot de passe pour un domaine <Directory /virtual/domain1.com/var/www/html/priv> AuthUserFile /var/www/passwd/domain1.com-priv AuthGroupFile /var/www/passwd/domain1.com-priv-g AuthName PRIVSECTION AuthType Basic <Limit GET PUT POST> require valid-user </Limit> </Directory> # Cr�er un autre domaine Server Side Include (SSI) <Directory /virtual/domain2.com/var/www/html> Options IncludesNOEXEC </Directory>
Ce fichier de configuration est utilis� pour contr�ler les options principales du serveur Apache. Voici un exemple de fichier de configuration qui montre comment avoir diff�rentes options pour chaque domaine.
# /var/www/conf/httpd.conf: Fichier de configuration principal du serveur # D�but: Section principale ServerType standalone # Num�ro du port Port 80 # Log des clients avec le nom et l'IP HostnameLookups on # Utilisateur qui lance le serveur User www Group www # Emplacement des fichiers de config, erreurs et log ServerRoot /var/www # Processus ID du serveur dans ce fichier PidFile /var/run/httpd.pid # Informations du processus interne du serveur ScoreBoardFile /var/www/logs/apache_status # Les options du Timeout et KeepAlive Timeout 400 KeepAlive 5 KeepAliveTimeout 15 # Nombre de Serveur � lancer MinSpareServers 5 MaxSpareServers 10 StarsServers 5 MaxClients 150 MaxRequestsPerChild 30 # Fin: Section de configuration principale # D�but: Section de l'h�bergement virtuel # Indique au serveur d'accepter les connexions pour IP:Port # Il y a une ligne pour chaque IP n�cessaire donc, vous pouvez ignorer certains # domaines Listen 10.10.10.129:80 Listen 10.10.10.130:80 # La commande VirtualHost permet de sp�cifier un autre domaine virtuel sur le # serveur. La plupart des options d'Apache peuvent �tre sp�cifi�es dans cette # section. <VirtualHost www.domain1.com> # E-mail � laquelle sont envoy�es les erreurs ServerAdmin webmaster@domain1.com # Endroit o� sont mis les documents du domaine virtuel DocumentRoot /virtual/domain1.com/var/www/html # Nom du serveur ServerName www.domain1.com # Fichiers de Log relatifs � l'option ServerRoot ErrorLog logs/domain1.com-error_log TransferLog logs/domain1.com-access_log RefererLog logs/domain1.com-referer_log AgentLog logs/domain1.com-agent_log # Utiliser les scripts CGI dans ce domaine ScriptAlias /cgi-bin/ /var/www/cgi-bin/domain1.com/ AddHandler cgi-script .cgi AddHandler cgi-script .pl </VirtualHost> <VirtualHost www.domain2.com> # E-mail � laquelle sont envoy�es les erreurs ServerAdmin webmaster@domain2.com # Endroit o� sont mis les documents du domaine virtuel DocumentRoot /virtual/domain2.com/var/www/html # Nom du Serveur ServerName www.domain2.com # Fichiers de Log relatifs � l'option ServerRoot ErrorLog logs/domain2.com-error_log TransferLog logs/domain2.com-access_log RefererLog logs/domain2.com-referer_log AgentLog logs/domain2.com-agent_log # Pas de script CGI pour ce domaine </VirtualHost> # Fin: Section de l'hebergement virtuel
Ce fichier de configuration est utilis� pour contr�ler comment sont servies les demandes et comment sont formatt�s les r�sultats. Vous n'avez pas besoin d'�diter quoi que ce soit ici pour les domaines virtuels. Le fichier de configuration de base d'Apache doit fonctionner.
Rien de sp�cial n'est � faire dans ce fichier. Utilisez la version de base qui est fournie avec Apache.
Cela s'applique seulement � la version standalone du serveur Apache. Un serveur qui se lance au travers d'inetd n'intervient pas avec les autres domaines et � acc�s � toute la table des descripteurs de fichiers.
Chaque fichier de log qu'ouvre Apache est un autre descripteur de fichier pour le processus. Il y a une limite de 256 descripteurs de fichier par processus au coeur du systeme Linux. Depuis que vous avez plusieurs domaines, vous utilisez plus de descripteurs de fichiers. Si vous avez trop de domaines tournant sur un processus du serveur Apache, vous pouvez engorger cette table. Cela peut impliquer que certains logs ne fonctionneront pas et que certains CGI seront interrompus.
Si vous pr�voyez cinq descripteurs de fichiers par domaine, vous pouvez avoir 50 domaines tournant sur votre serveur Apache sans probl�mes. Mais, si votre serveur a des probl�mes, vous pouvez cr�er /var/www1 avec un serveur Apache qui s'occupe des domaines 1 � 25 et /var/www2 avec un autre serveur qui s'occupe des domaines 26 � 50. Ainsi, chaque serveur aura son propre fichier de configuration, d'erreurs et de log. Chaque serveur doit �tre configur� separement avec ses propres directives de Listen et VirtualHost. Et n'oubliez pas de lancer plusieurs serveurs dans votre fichier httpd.ini.
La version 1.1 du protocole HTTP (HyperText Transfer Protocol) inclue une fonction qui communique le nom du serveur au client. Ce qui implique que le client n'a pas besoin de rechercher le nom du serveur � partir de son adresse IP. Comme �a, deux serveurs virtuels peuvent avoir la m�me adresse IP et �tre deux site Web diff�rents. La configuration d'Apache est la m�me qu'avant, � part que vous n'avez pas besoin de mettre plusieurs directives Listen comme les deux domaines ont la m�me IP.
Le seul probl�me est que virtuald utilise les adresses IP pour distinguer les
domaines. Dans sa forme actuelle Virtuald ne serait pas capable de chroot
vers un r�pertoire de mail (spool) pour chaque domaine. Donc, les mails ne peuvent
etre re�us que sur une IP et il n'y aurait plus un r�pertoire spool pour chaque
domaine. Tous les clients d'un serveur web partageant une IP devront se partager
le meme repertoire spool. Ce qui signifierait que dupliquer les noms d'utilisateurs
serait encore une solution. Enfin, c'est le prix � payer pour �conomiser une IP.
Ce HOWTO montre seulement comment impl�menter le support virtuel sur le serveur Web Apache. La plupart des serveur Web utilisent une interface similaire. Pour plus d'informations sur l'h�bergement de web virtuel, consultez le WWW-HOWTO, la documentation d'Apache sur le Site d'Apache, ou la documentation sur ApacheWeek.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:22