Pages : 1
#1 Le 02/04/2013, à 11:32
- Franck67
plusieurs machines sur un même nom de domaine
Bonjour,
afin de ne pas surcharger mon serveur web qui hebergent plusieurs sites, je voudrais répartir ces sites sur plusieurs machines.
en gros :
www.mondomaine.com -> mon ip_publique qui heberge mon site principal
www.mondomaine.com/~toto -> renvoyé vers 192.168.0.10
www.mondomaine.com/~tata -> renvoyé vers 192.168.0.20
www.mondomaine.com/~titi -> renvoyé vers 192.168.0.30
Est ce que c'est possible ? et si oui, je veux bien un debut de solution :-)
Merci pour votre aide !
ps : j'ai pour le moment, seulement des apache2 qui tournent sur chaque machine
Hors ligne
#2 Le 02/04/2013, à 11:58
- Akimania
Re : plusieurs machines sur un même nom de domaine
salut,
Voila une solution que j'utilise pour mes serveurs
# TOTO
<VirtualHost *:80>
DocumentRoot "var/www/mondomaine.com"
ServerName mondomaine.com
ServerAlias www.mondomaine.com
ServerAdmin root@localhost
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost On
# RewriteRule ^/(.*)$ http://192.168.0.10/$1 [P]
# RewriteRule ^/(.*)$ http://192.168.0.10/$1 [P]
ProxyPass / http://192.168.0.10/
ProxyPassReverse / http://192.168.0.10/
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
<Location /toto/>
Order allow,deny
Allow from all
</Location>
</VirtualHost>
# TATA
<VirtualHost *:80>
DocumentRoot "var/www/mondomaine.com"
ServerName mondomaine.com
ServerAlias www.mondomaine.com
ServerAdmin root@localhost
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost On
# RewriteRule ^/(.*)$ http://192.168.0.20/$1 [P]
# RewriteRule ^/(.*)$ http://192.168.0.20/$1 [P]
ProxyPass / http://192.168.0.20/
ProxyPassReverse / http://192.168.0.20/
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
<Location /tata/>
Order allow,deny
Allow from all
</Location>
</VirtualHost>
# TITI
<VirtualHost *:80>
DocumentRoot "var/www/mondomaine.com"
ServerName mondomaine.com
ServerAlias www.mondomaine.com
ServerAdmin root@localhost
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost On
# RewriteRule ^/(.*)$ http://192.168.0.30/$1 [P]
# RewriteRule ^/(.*)$ http://192.168.0.30/$1 [P]
ProxyPass / http://192.168.0.30/
ProxyPassReverse / http://192.168.0.30/
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
<Location /titi/>
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Hors ligne
#3 Le 02/04/2013, à 21:31
- jplemoine
Re : plusieurs machines sur un même nom de domaine
sur le PC qui contient le site principal
dans /etc/apache2/site-available/default, mettre :
ProxyPreserveHost On
ProxyRequests off
ProxyPass /toto http://<ip de toto>
ProxyPassReverse /toto http://<ip de toto>
ProxyPass /titi http://<ip de titi>
ProxyPassReverse /titi http://<ip de titi>
avant la balise </VirtualHost>
Cordialement,
Jean-Philippe
PS : voir la doc sur ProxyPass, il y a une manip à faire pour activer un truc sinon ça ne fonctionne pas.
Hors ligne
#4 Le 03/04/2013, à 10:05
- tiramiseb
Re : plusieurs machines sur un même nom de domaine
J'adhère à la proposition de jplemoine, même si moi j'ai plutôt l'habitude d'utiliser mod_rewrite...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 04/04/2013, à 11:49
- z0ng0
Re : plusieurs machines sur un même nom de domaine
Bonjour à tous,
Etant exactement sur le même sujet, j'ai procédé aux modifications suggérées par jplemoine. Je suis dans un premier temps assez heureux de constater que, quand je tape mon adresse/toto, je ne tombe plus sur un "not found"
Par contre, c'est désormais "La connexion a échoué" qui apparaît. Je constate également que l'adresse est passée en https...
Au niveau du code, j'ai fait un pur copié/collé, en remplaçant par l'IP locale (j'ai également tenté la publique). Je suis bien évidemment dans /etc/apache2/sites-available/default, et avant la balise </VirtualHost> :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
ProxyPreserveHost On
ProxyRequests off
ProxyPass /toto http://192.168.10.4/
ProxyPassReverse /toto http://192.168.10.4/
</VirtualHost>
A noter : au niveau des mods, j'ai lancé les commandes :
$sudo a2enmod proxy
$sudo a2enmod proxy_http
D'où 2 questions :
1) mon code est-il correct ?
2) sachant que les deux serveurs (publics) sont sur la DMZ (les deux en 192.168.10.XX) de notre Firewall, se pourrait-il que ce soit lui qui vienne m'embêter ?
Bonne journée à tous !
Hors ligne
#6 Le 04/04/2013, à 11:57
- tiramiseb
Re : plusieurs machines sur un même nom de domaine
1) mon code est-il correct ?
Ta configuration me semble correcte...
Mais bon je ne suis pas super fort avec mod_proxy, pour ma part j'utilise plutôt mod_rewrite...
2) sachant que les deux serveurs (publics) sont sur la DMZ (les deux en 192.168.10.XX) de notre Firewall, se pourrait-il que ce soit lui qui vienne m'embêter ?
Non, car tes deux serveurs communiquent directement, sans passer par le firewall.
Ton serveur derrière "/toto" ne redirigerait-ils pas vers du https systématiquement, par hasard ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#7 Le 04/04/2013, à 12:13
- z0ng0
Re : plusieurs machines sur un même nom de domaine
Merci pour ces réponses
Je vais voir avec les tuto pour mod_rewrite, voir si ça apporte du neuf...
Ton serveur derrière "/toto" ne redirigerait-ils pas vers du https systématiquement, par hasard ?
C'est ce à quoi je pensais au départ, du coup, j'ai testé mes manips avec un autre serveur (aussi sur DMZ, même masque...) d'un autre de mes sites web lambda, mais même résultat.
Hors ligne
#8 Le 04/04/2013, à 12:17
- tiramiseb
Re : plusieurs machines sur un même nom de domaine
Avec mod_rewrite, en gros tu aurais besoin de quelque chose comme ça (non testé, pas sûr que ce soit parfaitement correct) :
RewriteEngine On
RewriteRule ^/toto/(.*)$ http://192.168.10.4/$1 [P]
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 04/04/2013, à 13:39
- jplemoine
Re : plusieurs machines sur un même nom de domaine
- 1 -
Il me vient une idée et en comparant mon exemple (tiré d'un serveur fonctionnel) et ce que tu as écrit, j'ai une question : peux-tu essayer le cas :
- http://IP_publique/toto
- http://IP_publique/toto/ (avec un slash à la fin)
Si ça fonctionne dans le 2ème cas mais pas dans le premier, c'est qu'il faut modifier la déclaration en enlevant le / en fin de ligne.
ce n'est pas
ProxyPass /toto http://192.168.10.4/
ProxyPassReverse /toto http://192.168.10.4/
mais
ProxyPass /toto http://192.168.10.4 <-- sans / à la fin
ProxyPassReverse /toto http://192.168.10.4 <-- sans / à la fin
Puis relancer Apache et ressayer les 2 syntaxes, elles devraient être fonctionnelles...
- 2 -
ma solution de fonctionne que si on est qu'en http sur toute la chaîne.
Je n'ai pas réussi si on appelle le serveur par https.
http://IP_publique/toto --> fonctionne
https://IP_publique/toto --> je n'a pas réussi à le faire fonctionner.
Je ne connais que très peu le mod_rewrite et je suis donc incapable de dire si cette restriction est valable ou non.
- 3 -
si la solution exposée au -1- ne fonctionne pas, il faudrait voir les logs apache des 2 serveurs (celui qui redirige et celui qui "sert" la requête) pour voir s'il n'y a pas une piste.
Cordialement,
Jean-Philippe
Hors ligne
#10 Le 04/04/2013, à 15:42
- z0ng0
Re : plusieurs machines sur un même nom de domaine
En effet, c'était le '/' qui semblait faire planter le tout !
Je ne peux toutefois pas le dire avec grande certitude, après pas mal de test, j'ai remarqué que Firefox me donnait des infos erronées (même après suppression de la config, FF continuait de me rerouter sur le même site... mais en https ! Problème de cache malgré mon alt + F5 pour actualiser ? Je ne saurais le dire...). C'est ironiquement IE qui m'a permis de bien tester.
Merci bien pour le coup de main, je ne sais pas ce qu'il en est pour l'auteur de ce topic, mais de mon côté, c'est au top !
Merci pour votre aide à tous les deux,
z0ng0
Hors ligne
#11 Le 04/04/2013, à 18:20
- jplemoine
Re : plusieurs machines sur un même nom de domaine
Oui il ne faut jamais mettre le / à la fin ou il faut le mettre toujours. Y compris dans le navigateur.
Par contre, c'est possible qu'il y ait un cache quelque part.
Jean-Philippe.
Hors ligne
#12 Le 11/04/2013, à 10:56
- Franck67
Re : plusieurs machines sur un même nom de domaine
Oui il ne faut jamais mettre le / à la fin ou il faut le mettre toujours. Y compris dans le navigateur.
Par contre, c'est possible qu'il y ait un cache quelque part.Jean-Philippe.
Pour moi, ca ne marche toujours pas au poil, mais je continue mes recherches de mon coté
En gros mon souci, c'est aussi les /
J'aimerais rediriger les URLs avec un / à la fin, et celles sans.
Pour l'instant çà ne marche qu'avec.
ProxyPass /info/ http://192.168.2.247/~user/intra/ ProxyPassReverse /info/ http://192.168.2.247/~user/intra/ ProxyPass /info http://192.168.2.247/~user/intra/ ProxyPassReverse /info http://192.168.2.247/~user/intra/
Lorsque je ne mets pas le de / dans mon url, j'arrive bien sur mon site, mais sans les images (ou la feuille de style on dirait meme)
Si quelqu'un a un indice....
question subsidiaire : maintenant dans mes logs, c'est le serveur principal qui apparait comment consultant 192.168.2.247. N'y-a-t-il pas moyen de garder la réelle IP source ?
Hors ligne
#13 Le 11/04/2013, à 11:00
- tiramiseb
Re : plusieurs machines sur un même nom de domaine
Lorsque je ne mets pas le de / dans mon url, j'arrive bien sur mon site, mais sans les images (ou la feuille de style on dirait meme)
Si quelqu'un a un indice....
Probablement que tes pages web ont des adresses relatives, pour les images et les feuilles de style.
Tu vas sur "/info/", si la page retournée dit que le CSS est dans "truc.css" alors le navigateur va chercher dans "/info/truc.css".
Tu vas sur "/info", si la page retournée dit que le CSS est dans "truc.css" alors le navigateur va chercher dans "/truc.css".
maintenant dans mes logs, c'est le serveur principal qui apparait comment consultant 192.168.2.247. N'y-a-t-il pas moyen de garder la réelle IP source ?
Je crois que le reverse-proxy envoie l'adresse IP du client dans un en-tête spécifique, qui pourrait peut-être être ajouté dans les logs. Mais aucune certitude.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#14 Le 11/04/2013, à 15:42
- Franck67
Re : plusieurs machines sur un même nom de domaine
Probablement que tes pages web ont des adresses relatives, pour les images et les feuilles de style.
Tu vas sur "/info/", si la page retournée dit que le CSS est dans "truc.css" alors le navigateur va chercher dans "/info/truc.css".
Tu vas sur "/info", si la page retournée dit que le CSS est dans "truc.css" alors le navigateur va chercher dans "/truc.css".
Exactement ! Je dois éditer tous mes liens, ou il y'a un moyen de contourner çà ? car il y'en a un paquet à éditer, et je ne suis pas à l'abri d'un changement de machine, ou d'IP
Hors ligne
#15 Le 11/04/2013, à 15:44
- tiramiseb
Re : plusieurs machines sur un même nom de domaine
je ne suis pas à l'abri d'un changement de machine, ou d'IP
C'est pour ça que les bons frameworks offrent des fonctions de génération dynamique de liens
Je dois éditer tous mes liens, ou il y'a un moyen de contourner çà ?
Je peux te proposer de supprimer ProxyPass et ProxyPassReverse sur "/info" et mettre ça à la place :
Redirect permanent /info /info/
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#16 Le 11/04/2013, à 16:13
- Franck67
Re : plusieurs machines sur un même nom de domaine
Merci ca marche niquel !
Je n'ai plus qu'a resoudre mon souci de log, et tout marchera comme je veux
Hors ligne
Pages : 1