Documente Academic
Documente Profesional
Documente Cultură
doctorrock
Souvent peu compris, l'hbergement virtuel est de nos jours un acquis. Un mme serveur physique/logiciel capable d'hberger plusieurs sites parfois trs diffrents, voila ce qu'est le "virtual hosting" (vhost) Dans cet article, nous allons voir comment mettre en place un hbergement virtuel sous Apache, avec le dtail de toutes les facettes : types de vhost, scurit, contrle d'accs, DNS...
doctorrock
I - Introduction au Virtual Hosting................................................................................................................................3 II - Thorie gnrale du Virtual Host et d'Apache...................................................................................................... 4 III - Virtual Host par adresse rseau (IP / port TCP).................................................................................................. 5 IV - Virtual Host par noms...........................................................................................................................................8 IV-A - Virtual Host par noms et par IP.................................................................................................................. 9 IV-B - Rcapitulatif et considrations de scurit................................................................................................12 V - Exemple concret - complet..................................................................................................................................15 VI - Les configurations plus complexes et les modules tiers....................................................................................17
-2Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Nous allons dtailler le processus de routage des htes virtuels d'Apache, de manire claire afin qu'aucune confusion ne puisse tre faite. Ca n'est pas complexe, c'est mme simple et totalement logique, mais il faudra bien retenir certains points. La version d'Apache considre est 2.2.x, mais il n'existe que trs peu de diffrences avec les versions suprieures ou gales 1.3. Enfin nous parlerons des modules externes, rcuprer et compiler, qui peuvent rendre de gros services. Dans cet article, nous parlons htes virtuels et nous supposons que vous savez dj configurer un serveur Apache de manire fonctionnelle. Ainsi, nous n'allons pas chaque fois dtailler la configuration complte du serveur, mais juste ce qui nous intressera. Nous supposerons le reste de la configuration (qui peut demeurer tout fait "classique" et minimale nanmoins) prsent et fonctionnel.
-3Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
-4Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Le port est obligatoire, l'adresse est facultative, si on ne la prcise pas (en ne prcisant qu'un numro de port), Apache utilisera toutes les addresses IP disponibles sur la machine, c'est donc plutt dconseill pour des raisons de scurit (oubli lors de l'ajout d'une interface sur la machine par exemple). Le port utilis par HTTP est 80 par dfaut, ainsi les navigateurs web et autres clients HTTP l'utilisent sans devoir le prciser. Si un autre port est employ, il conviendra de le prciser sur le client. Ici, notre serveur coute le port 81 mais uniquement sur l'adresse 192.168.0.2. Les commandes Linux netstat et lsof permettent de vrifier qu'Apache coute bien les adresses/ports spcifis. Rappel : Toute ouverture de socket en coute sur un port infrieur 1024 ncessite les droits root sur les systmes *nix. Rappel : Apache doit dans la grande majorit des cas, tre dmarr par root ( cause du port qu'il doit couter, par dfaut 80, infrieur 1024 donc). Cependant, les processus qu'il va faire natre pour traiter les requtes des clients tourneront sous un autre utilisateur ayant beaucoup moins de droits ("www", "httpd" ou encore "daemon", a dpend de votre systme). Cet utilisateur et son groupe sont prciser dans la configuration globale d'Apache, via les directives User et Group. Ces utilisateurs sont globaux tout Apache, donc tous les sites/htes virtuels qu'il va servir. Un hte virtuel se configure grce la directive <VirtualHost>. Cette directive ouvre un bloc, dans lequel toutes les directives de contexte virtualhost peuvent tre crites. La liste est grande, voyez le manuel pour plus d'informations. Voyez cette page pour une explication des diffrents contextes de configuration Apache Chaque site se prsente sous la forme d'un bloc <VirtualHost> et celui-ci doit prciser un port et ventuellement une adresse d'coute, en thorie en correspondance avec la directive Listen ou du moins en corrlation avec. Exemple d'htes virtuels Apache bass sur le rseau : IP/ports
Listen 80 Listen 192.168.0.2:81 <VirtualHost 192.168.0.1:80> DocumentRoot /var/www1 ServerName server1 </Virtualhost> <VirtualHost 192.168.0.2:80> DocumentRoot /var/www2 ServerName server2 </VirtualHost> <VirtualHost 192.168.0.2:81> DocumentRoot /var/www3 ServerName server3 </VirtualHost>
-5Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Tant que l'ensemble des blocs <VirtualHost> "attrapent" tout ce qui peut entrer via Listen, tout va bien. Les directives minimales prciser sont DocumentRoot et ServerName, c'est dire la liaison entre cette adresse/ port, et le systme de fichiers : c'est la fonction centrale et la dfinition mme du serveur HTTP. Le nom (ServerName) est ici "facultatif" au niveau du choix du bloc excuter, c'est--dire que quel que soit le nom de domaine qui pointe sur l'IP, ServerName n'est pas utilis pour aiguiller la requte dans le cas d'un hbergement par IP. Important : seul le couple IP/Port est utilis pour aiguiller la requte dans le cas d'htes virtuels bass sur le rseau. Que se passe-t-il si aucun bloc <VirtualHost> ne correspond la demande ? En effet, imaginons ceci : Il semble manquer des blocs VirtualHost?
Listen 80 Listen 81 <VirtualHost 192.168.0.1> DocumentRoot /var/www1 ServerName server1 </VirtualHost>
Qu'advient-il d'une requte vers http://192.168.0.2:81 par exemple ? La rgle est simple : toute requte qui ne peut tre satisfaite par un hte virtuel tombe sur la configuration classique La configuration classique, c'est tout simplement l'ensemble DocumentRoot/ServerName qui est crit hors des blocs <VirtualHost> et qui pour rappel dfinit ce que l'on appelle le "serveur par dfaut" : ces directives sont obligatoires pour lancer Apache. le serveur par dfaut reoit la requte que les blocs VirtualHost n'attrapent pas
Listen 80 Listen 81 # attrape tout ce qui chappe aux blocs <VirtualHost> # dans notre exemple 192.168.0.1:80 sera attrap ici DocumentRoot /var/www ServerName ServerParDefaut # attrape 192.168.0.1:80 uniquement <VirtualHost 192.168.0.1:80> DocumentRoot /var/www1 ServerName server1 </VirtualHost> # attrape le port 81 de toutes les adresses de la machine <VirtualHost *:81> DocumentRoot /var/www2 ServerName server2 </VirtualHost>
Voila, vous venez de comprendre le fonctionnement des htes virtuels par IP sous Apache, il n'y a rien ajouter. A vous d'crire dans chaque bloc <VirtualHost> la configuration de votre serveur. Toute directive crite en dehors des blocs sera alors crase par celle crite dans le bloc, les autres seront traites normalement. Voila qui devrait donner un sens la notion "d'hte virtuel". Attention tout de mme, il y a des choses qu'Apache n'aime pas : les situations ambigus. Son statut est alors indfini et il finira souvent par planter. Voici une situation ambigu : une situation ambigu qu'Apache n'aime pas
Listen 192.168.0.1:80 Listen 81
-6Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
<VirtualHost 192.168.0.1> DocumentRoot /var/www1 ServerName server1 </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www2 ServerName server2 </VirtualHost>
Avec une telle configuration, une requte vers le port 81 mne vers le serveur par dfaut car aucun bloc <VirtualHost> ne peut l'attraper, mais quid d'une requte vers 192.168.0.1:80 ? Une telle requte peut tre attrape par 2 blocs <VirtualHost> (dans notre cas un prcise l'adresse sans port, et l'autre le port sans adresse), Apache ne sait pas lequel choisir et plantera souvent face un tel cas. Veiller toujours ce qu'il n'y ait aucune ambigut lors de la correspondance de la requte sur la socket d'entre et les blocs <VirtualHost>. Si tel est le cas, Apache entre dans un tat indfini. Pour viter cela, il suffit que les <VirtualHost> renseignent une IP et un port afin d'tre le plus prcis possible. Si possible, vitez le joker *.
-7Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Important : dans le cas d'un hbergement virtuel par noms, la directive NameVirtualHost est obligatoire. Inversement : la prsence d'une directive NameVirtualHost signifie qu'Apache va utiliser l'en-tte Host: de la requte, dans une partie du routage vers le bon hte virtuel. Les adresses renseignes dans les blocs <VirtualHost> doivent tre exactement les mmes que celles crites dans NameVirtualHost Dans notre exemple, une requte vers http://server1 mnera dans le premier bloc, une requte vers http://server2 vers le deuxime. Rappelons le schma d'une requte HTTP : Exemple simple d'une requte HTTP1.1
GET /foo/bar HTTP/1.1 Host: server1 {autres en-ttes ici}
C'est bien la valeur de Host: qui va dterminer le bloc <VirtualHost> choisir, en fonction de la directive ServerName loge l'intrieur A quoi peut bien servir cette directive NameVirtualHost ? C'est trs simple : elle sert router l'IP et le port dans le cas o le serveur en coute plusieurs. Apache effectue donc un double routage de la requte, ce qui nous amne la section immdiatement suivante de cet article.
-8Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Dans cet exemple, http://server1 est suppos tre rout dans le DNS vers 192.168.0.1. La requte arrive donc vers 192.168.0.1:80 et Apache entre donc dans la premire section NameVirtualHost. Une fois dedans, il analyse l'hte demand dans la requte : il s'agit de server1. server1 est bien prcis dans le premier bloc <VirtualHost>, il sera donc choisi comme second aiguillage, et /var/www1 sera servi. la valeur de NameVirtualHost doit tre systmatiquement la mme que celle de tous les blocs <VirtualHost> qui vont suivre. la valeur de NameVirtualHost doit tre un couple IP (* possible) et port. L'ensemble des directives NameVirtualHost se comportent comme dans le cas de l'hbergement par IP : il ne doit pas y avoir ambigut pour Apache. Continuons sur le mme exemple. Imaginons que server4 soit rout dans le DNS vers 192.168.0.2. Comme dans la section NameVirtualHost 192.168.0.2:80 il n'existe aucun bloc dont ServerName vaut "server4", une telle requte sera aiguille vers le serveur par dfaut qui sera server3. Voici les rgles du choix du serveur par dfaut lorsque des noms interviennent :
-9Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
1 2 3
dans le cas d'un serveur faisant intervenir des noms (NameVirtualHost), le serveur par dfaut n'est pas celui dclar hors des blocs <VirtualHost> (comme c'est le cas pour l'hbergement virtuel par IP) si et seulement si une directive NameVirtualHost a dj aiguill la requte ; le serveur par dfaut dans un hbergement virtuel par noms est le premier bloc <VirtualHost> qui suit le premier filtre : NameVirtualHost si et seulement si celui-ci a dj pu aiguiller la requte par son IP/port ; dans le cas d'un hbergement virtuel par noms, le serveur dclar hors des blocs <VirtualHost> est le serveur par dfaut si aucun couple IP/port n'a trouv de correspondance dans les directives NameVirtualHost dclares. Nous avons vu dans la partie "Virtual Host par rseau (IP/ports)" qu'il ne faut pas crer de situation ambigu. Dans les hbergements virtuels par noms, plusieurs blocs <VirtualHost> possdent exactement la mme syntaxe, ce qui a premire vue cre une confusion pour Apache. Il n'en est rien, car ces blocs ne seront interrogs que lorsque la directive NameVirtualHost du mme nom qu'eux aura trouv une correspondance vis vis de la requte en entre. Cette directive est donc indispensable dans le cas d'un hbergement virtuel se basant sur les noms et elle ne doit pas amener des situations ambigus car elle est teste ds l'entre de la requte. Une ou plusieurs IP, un ou plusieurs ports, peu importe : si un hbergement bas sur le nom d'hte est utilis, NameVirtualHost est indispensable. Mme avec une seule IP, on peut aussi parler "d'hbergement par IP et par nom", une IP, il en existe de toute faon toujours au moins une.
Voyons un dernier exemple plus complexe d'un serveur disposant de deux adresses IP : 192.168.0.1 et 192.168.0.2. En appliquant les principes dcrits auparavant, tout est clair : Exemple plus complexe d'hbergement virtuel plusieurs IP/ports et plusieurs noms
Listen 80 Listen 81 # Le serveur DefaultServer sera utilis si et seulement si # aucune des directives NameVirtualHost futures ne trouvent correspondance # par rapport au couple IP/port de la requte en entre ServerName DefaultServer DocumentRoot /var/www # Si la requte arrive sur 192.168.0.1:80 NameVirtualHost 192.168.0.1:80 # premier site : server1, *mais aussi* le site qui sera servi par dfaut # pour le couple 192.168.0.1:80 si un nom mne dessus sans tre dclar dans un VirtualHost <VirtualHost 192.168.0.1:80> ServerName server1 DocumentRoot /var/www1 </VirtualHost> # deuxime site : server2, le DNS devrait alors le faire pointer vers 192.168.0.1, # sinon il ne sera jamais atteignable moins de le deviner <VirtualHost 192.168.0.1:80> ServerName server2 DocumentRoot /var/www2 </VirtualHost> # Si la requte arrive sur 192.168.0.1:81 NameVirtualHost 192.168.0.1:81 # premier site : server3, *mais aussi* le site qui sera servi par dfaut # pour le couple 192.168.0.1:81 si un nom mne dessus sans tre dclar dans un VirtualHost <VirtualHost 192.168.0.1:81> ServerName server3 DocumentRoot /var/www3 </VirtualHost> <VirtualHost 192.168.0.1:81> - 10 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
# Si la requte arrive sur 192.168.0.2:81 NameVirtualHost 192.168.0.2:81 # premier site : server5, *mais aussi* le site qui sera servi par dfaut # pour le couple 192.168.0.2:81 si un nom mne dessus sans tre dclar dans un VirtualHost <VirtualHost 192.168.0.2:81> ServerName server5 DocumentRoot /var/www5 </VirtualHost>
Suivons le guide : http://server1 mne vers /var/www1 condition que le domaine server1 soit rout vers 192.168.0.1 dans le DNS. http://server2 mne vers /var/www2 condition que le domaine server2 soit rout vers 192.168.0.1 dans le DNS. http://server3:81 mne vers /var/www3 condition que le domaine server3 soit rout vers 192.168.0.1 dans le DNS. http://server3 mne vers /var/www1 (server1) car server3 est point par le DNS sur 192.168.0.1 menant la requte "192.168.0.1:80", c'est donc cette directive NameVirtualHost qui la prend en charge http://server4:81 mne vers / var/www4 condition que le domaine server4 soit rout vers 192.168.0.1 dans le DNS. http://server5:81 mne vers /var/www5 condition que le domaine server5 soit rout 192.168.0.2 dans le DNS. http://server5 mne vers /var/www (DefaultServer) car le couple IP/port 192.168.0.2:80 n'a aucune correspondance NameVirtualHost etc etc. C'est tout la fois simple et logique. Un fichier "hosts" (ou un enregistrement dans le DNS) comme le suivant est donc correct : un fichier hosts en accord avec la configuration d'Apache
192.168.0.1 server1 server2 server3 server4 192.168.0.2 server5
Ds que le nom d'hte intervient (hbergement virtuel bas sur les noms), le DNS possde une place primordiale. Il doit tre en toute logique en corrlation avec le mapping que fait Apache. Pour le "simuler" lors de tests, le fichier /etc/hosts peut tre dit en consquence. Si le DNS ne pointe pas comme il faut, rappelez vous qu'Apache aiguille d'abord l'IP/port via NameVirtualHost puis cherche un bloc <VirtualHost> en regardant les ServerName, si aucun ne correpond : le premier bloc <VirtualHost> est slectionn. Dans cet exemple-l, une requte vers http://une_ip_que_le_serveur_ecoute mne systmatiquement vers le serveur par dfaut, car mme si une des directives NameVirutalHost va aiguiller cette IP, aucun bloc <VirtualHost> sous-jacent ne dclare un ServerName correspondant exactement cette IP. Rappelons qu'une requte HTTP utilisant l'IP directement, possde comme en-tte Host: (donc comme "nom de serveur") l'IP elle-mme.
- 11 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Schma de routage des htes virtuels d'Apache Une erreur de DNS, ou l'oubli du fait que quelqu'un peut accder http://une_adresse_ip et non pas http://un_nom_de_domaine peut mener des catastrophes. N'oubliez jamais qu'une simple session telnet permet d'crire la main la requte HTTP et donc de forger n'importe quel "Host:" pour toute IP Regardez cette configuration : un exemple peu scuris, sauf si on sait parfaitement ce que l'on fait
Listen *:80 ServerName DefaultServer DocumentRoot /var/www NameVirtualHost 192.168.0.1:80 <VirtualHost 192.168.0.1:80> ServerName server1 DocumentRoot /var/www1 </VirtualHost> <VirtualHost 192.168.0.1:80> - 12 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
L'administrateur doit clairement se focaliser sur le paramtre IP/port et supposer que le DNS peut tomber, tre modifi, ou que la requte HTTP peut tre forge. Ce qui suit n'est pas une bizarrerie : http://server2, dont le reverse DNS donne comme IP 192.168.0.1 mnera sur server2, mais http://192.168.0.1 mnera sur server1, elle. On peut aussi crire la requte suivante: Requte HTTP forge
# telnet 192.168.0.1 80 HEAD / HTTP/1.1 Host: foo
Et on arrive sur server1 aussi, puisqu'aucun site n'a comme nom "foo". Plus brutal : si helloworld.server2 existe dans le DNS et pointe vers 192.168.0.1, http://helloworld.server2 mnera vers server1. Pensez aussi HTTP1.0. Cette version du protocole (parle trs trs rarement mais prendre en compte), n'inclut pas l'en-tte Host: ncessaire au fonctionnement des htes virtuels par noms. Apache dfinit ServerPath pour pallier ce problme, mod_rewrite peut aussi jouer de sa magie dans une moindre mesure. L'exemple que l'on traite possde aussi une grosse faiblesse : la directive Listen coute toutes les IP. Si la machine venait changer d'IP pour une raison quelconque, c'est DefaultServer qui sera interrog ! (Aucun NameVirtualHost ne matche autre chose que 192.168.0.1). Attention l encore. Ces "petites faiblesses" du systme d'hbergement virtuel par noms peuvent tre compenses par Apache via la directive ServerAlias qui permet de donner d'autres noms au serveur. Corrigeons notre exemple : exemple plus scuris
# Nous dclarons clairement le mapping rseau # utilis par Apache, pas d'embrouille ou de "magie" possible, # pas de caractre * assez risqu Listen 192.168.0.1:80 Listen 192.168.0.2:80 ServerName DefaultServer DocumentRoot /var/www NameVirtualHost 192.168.0.1:80 # catchall : celui-ci attrape l'accs par "http://192.168.0.1" # et le redirige vers une page 403 (directive order) <VirtualHost 192.168.0.1:80> ServerName 192.168.0.1 DocumentRoot /var/www <Directory /var/www> order allow, deny </Directory> </VirtualHost> #server1 mais aussi "nimporte-quoi.server1" <VirtualHost 192.168.0.1:80> ServerName server1 ServerAlias *.server1 - 13 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
DocumentRoot /var/www1 </VirtualHost> #server2 mais aussi "nimporte-quoi.server2" <VirtualHost 192.168.0.1:80> ServerName server2 ServerAlias *.server2 DocumentRoot /var/www2 </VirtualHost> NameVirtualHost 192.168.0.2:80 # catchall <VirtualHost 192.168.0.2:80> ServerName 192.168.0.2 DocumentRoot /var/www <Directory /var/www> order allow, deny </Directory> </VirtualHost> <VirtualHost 192.168.0.2:80> ServerName server3 ServerAlias *.server3 DocumentRoot /var/www3 </VirtualHost>
On s'assure que les sous-domaines sont interprts comme il faut et aussi que les accs par l'adresse IP mnent vers une page d'erreur (403).
- 14 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
Conception dtaille d'htes virtuels sous Apache par Julien Pauli ServerName jp DocumentRoot /media/www # PHP5.3 tourne en CGI sur ce serveur ScriptAlias /php/ "/usr/local/php53/bin/" Action php5-fastcgi "/php/php-cgi53" AddHandler php5-fastcgi .php ReadmeName /apache/footer.shtml HeaderName /apache/header.shtml </VirtualHost> # server sur le port 8080 : un proxy forward NameVirtualHost *:8080 <VirtualHost *:8080> ServerName proxy.jp ProxyRequests On ProxyVia On AllowCONNECT 443 563 <Proxy *> Order deny,allow Allow from 192.168 Allow from 127.0.0.1 Deny from all </Proxy> # l'interrogation directe mnera vers un accs interdit <directory /> Order allow,deny Deny from all </directory> </VirtualHost>
doctorrock
- 16 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/
doctorrock
- 17 Copyright 2009 Julien PAULI. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://julien-pauli.developpez.com/tutoriels/apache/vhosts/