3 votes

Transférer les requêtes HTTP aux VMs derrière un réseau virtuel

J'essaie de mettre en place un hôte de machine virtuelle (actuellement sous ubuntu + KVM) qui accueillera un certain nombre de VM pour différentes applications. Par exemple, nous avons un wiki fonctionnant sur une VM et une application web fonctionnant sur une autre.

     Host
     /  \\ 
    VM1 VM2

En interne, les machines virtuelles vivent sur leur propre réseau virtuel avec leurs propres adresses IP, mais en externe, il n'y a qu'une seule adresse IP, celle de l'hôte.

Un domaine configuré sur notre réseau pointe vers l'adresse IP de l'hôte et je peux configurer un iprule pour transférer le trafic destiné à l'hôte directement vers l'une des machines virtuelles. Cependant, pour que les deux VM soient accessibles au monde extérieur, je dois d'une manière ou d'une autre transférer les requêtes en fonction de l'URL.

Idéalement, je voudrais transférer les demandes par sous-domaine, par exemple.

http://vm1.host/ -> host -> VM1
http://vm2.host/ -> host -> VM2

mais aussi par le chemin URL :

http://host/vm1 -> host -> VM1
http://host/vm2 -> host -> VM2

J'ai déjà installé Apache sur la machine hôte. Quel type de règles de transfert/redirection/aliasing/proxie inverse me faudrait-il pour que ce type de configuration réseau fonctionne ? Faut-il ajouter quelque chose pour gérer les sous-domaines ?

1voto

davr Points 1729

Est-ce que vous servez des pages web à partir de l'hôte lui-même ? Si ce n'est pas le cas, et que toutes les données web se trouvent sur VM1 et VM2, alors Apache sur l'hôte n'est probablement pas la meilleure solution. Vous devriez probablement utiliser quelque chose comme haproxy o calmar sur l'hôte pour transmettre les requêtes à Apache qui tourne sur VM1&2

0 votes

Non, l'hôte lui-même ne sert rien pour le moment, mais je vais certainement examiner ces outils de proxy comme alternative à Apache.

0 votes

+1 pour la procuration. Même les serveurs web comme lighttpd/nginx fournissent un mode proxy qui fonctionne bien dans cette situation.

0voto

alexus Points 12076

J'ai un environnement assez similaire, où j'ai besoin de transférer des données d'un hôte à un autre, et j'utilise donc le mod_proxy d'Apache. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html J'espère que cela vous aidera. Vous pouvez également utiliser un hôte virtuel. http://httpd.apache.org/docs/2.2/vhosts/

0voto

Kyle Brandt Points 81077

Je pense que l'utilisation d'Apache sur l'hôte est correcte. Il s'agit essentiellement de la même situation que ce message de défaut de serveur vous voulez une sorte de proxy inverse.

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