1 ip fixe pour 3 serveur web est-ce possible?
Résolu/Fermé
A voir également:
- Freebox reverse proxy
- Ethernet n'a pas de configuration ip valide - Guide
- Instagram web - Guide
- Traduire une page web - Guide
- Picasa 3 - Télécharger - Albums photo
- Vers quelle adresse web renvoie ce lien - Guide
8 réponses
[Andrew]
Messages postés
1
Date d'inscription
samedi 24 juin 2006
Statut
Membre
Dernière intervention
24 juin 2006
2
24 juin 2006 à 06:05
24 juin 2006 à 06:05
Le plus simple est d'utiliser la commande RewriteRule.
Vérifies que les modules suivants sont activés :
Ensuite dans tes VirtualHost active le rewrite et surtout entre le bonne syntaxe. Tu peux forwarder vers n'importe quel IP/port dans ton LAN.
Voilà, c'est complètement transparent pour le client car c'est apache qui discute avec les autres serveurs web dans ton LAN. Ton client n'a pas besoin d'accéder aux autres serveurs.
Apache reste en frontal et dispatch, pas besoin d'ouvrir d'autres ports que le 80.
Andrew
Vérifies que les modules suivants sont activés :
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so
Ensuite dans tes VirtualHost active le rewrite et surtout entre le bonne syntaxe. Tu peux forwarder vers n'importe quel IP/port dans ton LAN.
<VirtualHost domaine1.com> ServerName domaine1.com RewriteEngine On RewriteRule ^/(.*) \http://IP_DE_TA_MACHINE1:80/$1 [P] </VirtualHost> <VirtualHost domaine2.com> ServerName domaine2.com RewriteEngine On RewriteRule ^/(.*) \http://IP_DE_TA_MACHINE2:80/$1 [P] </VirtualHost>
Voilà, c'est complètement transparent pour le client car c'est apache qui discute avec les autres serveurs web dans ton LAN. Ton client n'a pas besoin d'accéder aux autres serveurs.
Apache reste en frontal et dispatch, pas besoin d'ouvrir d'autres ports que le 80.
Andrew
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
2 juin 2005 à 17:50
2 juin 2005 à 17:50
Mais voilà ce que j'aimerai faire c'est pouvoir répartir les 3 pages web sur 3 serveurs différent de mon réseau en sachant qu'on ne peut rediriger un seul port vers une seule ip.
Ca c'est simplement impossible si tout le monde est derrier un routeur NAT (comme la Freebox en mode routeur).
Par contre tu peux faire 3 pages webs sur un seul serveur en utilisant les trois domaines. Tu peux definir dans le fichier httpd.conf de choses comme:
et deposer dans /home/nom1/..., /home/nom2/..., /home/nom3/... les fichiers index.html etc. pour chaque page web. J'ai choisi ces noms et l'endroit /home/... a titre exemple, en principe tu peux faire comme tu veux mais /home/... me semble en effet un bon endroit pour faire ca. Tu peux meme creer d'utilisateurs differents pour chaque page web (avec /hom/nom?/... comme repertoire home) qui auront la responsabilite de gerer les differents pages.
Apres il faut rediriger toutes tes domaines vers ton numero IP Free (un truc comme "nickname" ?) et rediriger le port 80 vers la machine qui fait serveur.
Pour les details il te faut etudier la doc d'apache (peut-etre dans apache 2.0 la syntax est un peu differente mais c'est certainement possible).
Ca c'est simplement impossible si tout le monde est derrier un routeur NAT (comme la Freebox en mode routeur).
Par contre tu peux faire 3 pages webs sur un seul serveur en utilisant les trois domaines. Tu peux definir dans le fichier httpd.conf de choses comme:
ServerName www.nom1.domaine1.fr ServerAlias www.nom1 ServerPath /chemin1/ DocumentRoot /home/nom1/ ... ServerName www.nom2.domaine2.fr ServerAlias www.nom2 ServerPath /chemin2/ DocumentRoot /home/nom2/ ... ServerName www.nom3.domaine3.fr ServerAlias www.nom3 ServerPath /chemin3/ DocumentRoot /home/nom3/ ...
et deposer dans /home/nom1/..., /home/nom2/..., /home/nom3/... les fichiers index.html etc. pour chaque page web. J'ai choisi ces noms et l'endroit /home/... a titre exemple, en principe tu peux faire comme tu veux mais /home/... me semble en effet un bon endroit pour faire ca. Tu peux meme creer d'utilisateurs differents pour chaque page web (avec /hom/nom?/... comme repertoire home) qui auront la responsabilite de gerer les differents pages.
Apres il faut rediriger toutes tes domaines vers ton numero IP Free (un truc comme "nickname" ?) et rediriger le port 80 vers la machine qui fait serveur.
Pour les details il te faut etudier la doc d'apache (peut-etre dans apache 2.0 la syntax est un peu differente mais c'est certainement possible).
Merci pour ta réponse mais c'est ce que j'ai actuellement les 3 nom domaine pointe sur mon serveur web sur lequel j'ai renseigné dans http.conf les 3 nom de domaine. Il n'y a réellement rien à faire même avec un serveur DNS (bind) sous linux en associant le virtualhost de apache?
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
2 juin 2005 à 19:09
2 juin 2005 à 19:09
Tu peux bien sur faire tourner les differents serveurs http sur differents ports tcp, donc pas forcement le 80 mais 81 ou 82 ou 8080, ... Dans ce cas il n'y a aucun probleme pour rediriger les ports. Tu peux meme faire:
port 80 internet => port 80 pc1 derriere le routeur
port 81 internet => port 80 pc2 derriere le routeur
port 82 internet => port 80 pc3 derriere le routeur
(mais l'utilisation de 81, 82 sur pc2 ou pc3 serait aussi tres facile avec la bonne option d'apache)
Le seule probleme que je vois, comment assurer que tes visiteurs mettent le bon port dans le navigateur ? Normalement on tape http://www.domaine.fr:81 pour acceder au http par le port 81 mais qui va faire ca ? Je n'en connais rien mais on ne peut pas associer le port a un domaine ??? Genre: domaine1 => port 80 et domaine2 => port 81. Si c'est possible tu as gagnes mais honnetement je ne le crois pas possible.
Peut-etre tu peux aussi faire une espece de proxy sur un pc qui redirige les requetes http vers les autres pcs. Ca revient a une solution plutot intermediaire. Pour ca je ne connais pas de details ni c'est vraiement possible (mais je suppose que oui).
Le probleme principale est qu'il faut faire le tri entre les differents domaines qui utilisent tous le meme numero IP! Meme si tu programes toi meme le routeur NAT (enlever le mode routeur de la Freebox et mettre un pc linux comme routeur entre Freebox et les autres pcs, avec switch et deux cartes reseau) tu peux faire de regles de filtrage avec iptables pour le forward en utilisant le numero IP et les ports mais je ne sais pas comment dire a iptables de faire le tri pour le domaine.
port 80 internet => port 80 pc1 derriere le routeur
port 81 internet => port 80 pc2 derriere le routeur
port 82 internet => port 80 pc3 derriere le routeur
(mais l'utilisation de 81, 82 sur pc2 ou pc3 serait aussi tres facile avec la bonne option d'apache)
Le seule probleme que je vois, comment assurer que tes visiteurs mettent le bon port dans le navigateur ? Normalement on tape http://www.domaine.fr:81 pour acceder au http par le port 81 mais qui va faire ca ? Je n'en connais rien mais on ne peut pas associer le port a un domaine ??? Genre: domaine1 => port 80 et domaine2 => port 81. Si c'est possible tu as gagnes mais honnetement je ne le crois pas possible.
Peut-etre tu peux aussi faire une espece de proxy sur un pc qui redirige les requetes http vers les autres pcs. Ca revient a une solution plutot intermediaire. Pour ca je ne connais pas de details ni c'est vraiement possible (mais je suppose que oui).
Le probleme principale est qu'il faut faire le tri entre les differents domaines qui utilisent tous le meme numero IP! Meme si tu programes toi meme le routeur NAT (enlever le mode routeur de la Freebox et mettre un pc linux comme routeur entre Freebox et les autres pcs, avec switch et deux cartes reseau) tu peux faire de regles de filtrage avec iptables pour le forward en utilisant le numero IP et les ports mais je ne sais pas comment dire a iptables de faire le tri pour le domaine.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
On peut aussi configurer un serveur comme reverse proxy. Il reçoit tous les appels et les ventile vers les serveurs concernés (y compris lui-même si besoin) en faisant des translations d'URL On peut configurer Apache en reverse proxy.
Manu
On peut aussi configurer un serveur comme reverse proxy. Il reçoit tous les appels et les ventile vers les serveurs concernés (y compris lui-même si besoin) en faisant des translations d'URL On peut configurer Apache en reverse proxy.
Manu
Merci pour les conseils mais comment pourrais-je le paramétrer ce fameux proxy.
Ah oui j'ai oublié de dire que ma freebox elle me sert que pour l'interconnexion de mon LAN sur le WAN et mon routeur est un pc sur lequel j'ai mis 4 cartes réseau et j'ai mis IpCop (une distrib linux pour tranformer un pc en routeur).
Ah oui j'ai oublié de dire que ma freebox elle me sert que pour l'interconnexion de mon LAN sur le WAN et mon routeur est un pc sur lequel j'ai mis 4 cartes réseau et j'ai mis IpCop (une distrib linux pour tranformer un pc en routeur).
Bonjour,
Pour un reverse proxy, tu donnes les correspondances entre ce qui entre et ce qui sort. Par exemple (non écrit dans la syntaxe d'Apache pour faciliter l'explication)
entrée 1 : http://site1.com/jobs/* (* = nimporte quelle arborescence)
sortie 1 : http://10.20.20.20/* (* = ce qui est représenté par * en entrée)
entrée 2 : https://site2.com/login/*
sortie2 : http://10.30.30.30/login/* (nb pas de sortie en https)
entrée 3 : http://site1.com/support/* (autre arborescence dans site1)
sortie3 : http://10.30.30.30/support/* (servi par le serveur en .30)
J'ai supposé que site1.com et site2.com sont deux noms renvoyés sur la même adresse IP, elle-même dirigée vers le reverse proxy, et que ton réseau local est en adresses privées.
Bien sûr si tu mets un reverse proxy et un serveur web sur la même machine, tu réserveras les ports 80 et 443 au reverse proxy, et le serveur web sur un autre port.
Manu
Pour un reverse proxy, tu donnes les correspondances entre ce qui entre et ce qui sort. Par exemple (non écrit dans la syntaxe d'Apache pour faciliter l'explication)
entrée 1 : http://site1.com/jobs/* (* = nimporte quelle arborescence)
sortie 1 : http://10.20.20.20/* (* = ce qui est représenté par * en entrée)
entrée 2 : https://site2.com/login/*
sortie2 : http://10.30.30.30/login/* (nb pas de sortie en https)
entrée 3 : http://site1.com/support/* (autre arborescence dans site1)
sortie3 : http://10.30.30.30/support/* (servi par le serveur en .30)
J'ai supposé que site1.com et site2.com sont deux noms renvoyés sur la même adresse IP, elle-même dirigée vers le reverse proxy, et que ton réseau local est en adresses privées.
Bien sûr si tu mets un reverse proxy et un serveur web sur la même machine, tu réserveras les ports 80 et 443 au reverse proxy, et le serveur web sur un autre port.
Manu
24 juin 2006 à 06:53
Depuis que j'ai vu les possibilités de Load Balancing avec ce truc, j'en suis baba....
14 janv. 2009 à 06:53
ça fait plaisir de trouver enfin une réponse à ce problème !
Cependant voici une question complémentaire:
J'ai installé le package apache_mod_proxy afin de bénéficier des modules:
mod_proxy.so
mod_proxy_http.so
Ces derniers ont été inscrits dans le fichier httpd.conf conformément aux directive:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
Mon problème est qu'au moment d'appliquer les changements, j'ai le message d'erreur suivant:
Impossible d'appliquer les changements :
httpd: Syntax error on line 237 of /etc/httpd/conf/httpd.conf: LoadModule takes two arguments, a module name and the name of a shared object file to load it from
hum ... désolé mais pouvez-vous m'expliquer d'où cela pourrait venir ?
Merci d'avance, j'ai hâte de voir le résultat des courses une fois ce cap passé !
Philippe
14 janv. 2009 à 09:19
Non, désolé. C'est de ma faute ! Les modules mod_proxy et mod_proxy_http étaient déjà chargés donc erreur normale.
En revanche ...
<VirtualHost domaine2.com>
ServerName domaine2.com
RewriteEngine On
RewriteRule ^/(.*) \http://IP_DE_TA_MACHINE2:80/$1 [P]
</VirtualHost>
... n'a pas fait le boulot prévu.
Impossible d'obtenir le site hébergé sur une autre machine du LAN (tous les problèmes de parefeu étant analysés)