7 votes

Comment faire pointer des sous-domaines vers des IP locales différentes ?

Ma question est la même que pour Comment faire pointer un sous-domaine vers un serveur local avec une IP dynamique ? . La différence est que j'ai une IP statique de mon fournisseur d'accès, je pense que je n'ai pas besoin d'utiliser DynDNS, n'est-ce pas ?

Mon objectif est de faire pointer chaque sous-domaine vers un serveur web différent, comme ceci :
mydomain.com --> 192.168.1.100 (serveur web principal)
sub1.mydomain.com --> 192.168.1.101(serveur web 1)
sub2.mydomain.com --> 192.168.1.102(serveur web 2)

J'ai essayé d'utiliser le module proxy d'Apache en suivant les instructions. ici mais ne pas réussir. Lorsque j'accède à sub1.mydomain.com par le navigateur, il mène toujours à mydomain.com.
Puis-je le faire par cette approche ? Si non, veuillez m'indiquer une autre méthode.

J'utilise Ubuntu Server 12.04

[SOLVÉ]
Solution

  1. Configurer le DNS

L'enregistrement A pointe vers l'IP publique :
1 @ public.ip
2 www public.ip

L'enregistrement CNAME pointe vers le sous-domaine :
1 sub1 mondomaine.com
2 sub2 mondomaine.com

  1. Configurer Apache.

Ajouter sub1 y sub2 a /etc/apache2/sites-available

sub1 :

<VirtualHost *:80>    
        ServerName sub1.mydomain.com    
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>    
        <Location />
                ProxyPass http://192.168.1.101/
                ProxyPassReverse http://192.168.1.101/
        </Location>    
</VirtualHost>

sous2 :

<VirtualHost *:80>    
        ServerName sub2.mydomain.com    
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>    
        <Location />
                ProxyPass http://192.168.1.102/
                ProxyPassReverse http://192.168.1.102/
        </Location>    
</VirtualHost>

0 votes

Votre description du problème ne comporte que deux mots, "ne pas réussir". Ce n'est pas vraiment utile. Qu'est-ce que exactement Avez-vous essayé ? Jusqu'où êtes-vous allé ? Qu'est-ce qui n'a pas marché ?

0 votes

@thang nhoc : S'il vous plaît modifier votre question, et ajouter plus détail (il semble que vous ayez seulement ajouté du texte supplémentaire). Plus précisément, commencez par répondre aux questions ci-dessus, et incluez la partie pertinente des configurations.

0 votes

@Piskvor : désolé pour la confusion. Je veux quelque chose comme un "serveur proxy" de sorte que lorsque la demande vient à sub1.mydomain.com il sera redirigé vers 192.168.1.101, donc j'essaie avec le module proxy d'Apache. J'ai suivi les instructions du lien ci-dessus, mais lorsque j'accède à sub1.mydomain.com par le navigateur, il conduit toujours à mydomain.com. Voilà mon problème

4voto

MadHatter Points 77602

Ce n'est pas vraiment un problème de serveur web, il devrait être résolu dans votre DNS. Vous contrôlez le DNS pour mydomain.com n'est-ce pas ? Alors, ajoutez A pour les sous-domaines pointant vers les adresses IP correspondantes, assurez-vous que ces adresses sont servies par des serveurs web qui savent qu'ils doivent servir ces domaines, et tout fonctionnera.

Faire en sorte que toutes les requêtes des sous-domaines passent par le serveur principal pour mydomain.com comme une sorte d'équilibreur de charge bizarre, est inefficace et inutile.

Modifier Je n'avais pas compris que vous utilisiez les adresses 192.168.0.0/16 pour signifier que vos serveurs de sous-domaines se trouvaient sur un réseau interne ; j'avais pensé que vous ne faisiez qu'expurger les adresses comme vous aviez expurgé les noms de domaine.

Donc : tous les serveurs web sont-ils sur le réseau interne ? Ou seulement ceux des sous-domaines ? Dans ce dernier cas, quel type de connexion VPN existe-t-il actuellement entre le serveur web principal et les serveurs internes ?

0 votes

Bonjour MadHatter, merci pour votre réponse. J'ai ajouté des enregistrements A pour le sous-domaine pointant vers les adresses IP correspondantes (adresse IP locale 192.168.1.xxx) et cela fonctionne, mais uniquement lorsque je suis dans mon réseau local, pas à l'extérieur - depuis Internet. Si cela est inefficace et inutile comme vous l'avez dit, que dois-je faire ? Je veux accéder à deux autres serveurs Web depuis l'Internet sans acheter de nom de domaine supplémentaire.

1 votes

@thangnhoc vous cherchez au mauvais endroit. Vous n'avez ni un problème de DNS ni un problème de serveur web. Votre problème est la configuration de votre réseau. Tous vos serveurs web ont besoin d'adresses IP externes pour pouvoir être atteints depuis l'extérieur de votre réseau. Assurez-vous également que les bons ports sont ouverts/forgés dans le(s) pare-feu(s).

1voto

Jahanzeb Farooq Points 598

Je l'ai fait récemment. Voir ma question . C'était une sorte de long aller-retour, mais j'ai réussi à le mettre en place à la fin.

  • Configurer le DNS. L'enregistrement A pointera vers votre adresse IP publique. Ainsi, yourdomain.com pointe vers your.pub.ip.add. Ajoutez des enregistrements CNAME pour les sous-domaines. Ainsi, sub1.yourdomain.com pointe vers @ et sub2.votredomaine.com pointe vers @ etc. Bien que les sous-domaines pointent tous vers la même adresse, le navigateur indiquera au serveur web quel sous-domaine vous essayez d'atteindre.

  • Configurer Apache. Vous voudrez configurer des serveurs virtuels pour chaque sous-domaine (et peut-être aussi pour le domaine principal). Vous pouvez définir les Hôtes Virtuels à différents endroits... le mien est défini dans /etc/apache2/sites-available et comprend le <Location> qui est l'endroit où vous allez configurer votre proxy inverse.

0 votes

J'ai suivi vos instructions, cela fonctionne parfaitement pour moi. Merci beaucoup mon frère !

0 votes

@thangnhoc merveilleux !

1 votes

Cela serait plus utile avec un exemple

0voto

Stephane Points 6344

Si je vous comprends bien, voici votre situation :

  • Vous avez une seule adresse IP externe
  • Vous disposez de plusieurs serveurs Web internes (c'est-à-dire de différentes machines physiques ou VM, et non de différentes racines Web sur le même serveur Web).

Dans ce cas, vous ne pouvez pas compter sur l'utilisation d'une IP différente pour chaque domaine parce que, eh bien, vous n'en avez qu'une. Vous ne pouvez pas non plus demander à Apache d'utiliser l'en-tête HTTP "host" pour router vers le bon sous-domaine, car vous avez plus d'une configuration d'Apache, toutes sur des IP internes différentes.

Dans ce cas, j'utiliserais Squid en mode proxy inverse : L'installer sur une machine "simple" et lui faire rediriger les requêtes vers chaque serveur web, local ou distant.

Il est assez facile à mettre en place : consultez cette page de la documentation standard de Squid qui décrit exactement ce que vous voulez faire : http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleWebservers

Veuillez noter que l'utilisation d'un reverse proxy peut causer des problèmes de compatibilité avec les applications et que la mise en place de SSL est délicate dans un tel scénario (mais c'est possible).

0 votes

Merci beaucoup pour votre réponse. C'est exactement ce à quoi je suis confronté. Une bonne nouvelle demain matin, je vais essayer Squid et vous montrer mon résultat. Merci encore !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X