web-dev-qa-db-fra.com

Comment héberger plusieurs serveurs Web physiques derrière une seule adresse IP?

J'utilise plusieurs serveurs Web chez moi, chacun d'entre eux étant branché sur mon routeur.

Serveur A Serveur B Serveur C

À l'heure actuelle, je ne peux utiliser qu'un seul serveur car mon port IP (xx.xxx.xx.xx) 80 pointe vers le serveur A. Toutefois, certains domaines pointent sur le serveur A, d'autres sur B, etc.

Avec mon adresse IP unique, comment puis-je pointer vers chaque serveur? Par exemple, mes A(Host) enregistrements indiquent tous uniquement mon adresse IP.

Désolé si je semble déroutant. Faites-moi savoir si je ne suis pas clair.

Chaque serveur exécute Ubuntu Server 12.04.02 et utilise Apache (si cela aide). Mon routeur est également un réseau Netgear et mon fournisseur d'accès Internet est Time Warner Cable.

13
Stephen Cioffi

Les sites Web seront reconnus via l'en-tête Host: envoyé par le navigateur. Mais comme votre routeur n’est pas capable de la démêlage HTTP utilisée par l’hébergement virtuel, vous devrez choisir un serveur en tant que "point final" ( et indiquez cette adresse à votre routeur en tant que serveur virtuel/DMZ).

Ensuite, vous configurez cette machine en tant que serveur Web pour ses domaines et proxy pour les autres (par exemple, en utilisant le proxy inverse Apache ), ou (peut-être mieux) vous installez un proxy sur cette machine et utilisez-le pour multiplexer les demandes adressées aux autres serveurs. Certains domaines peuvent même être hébergés sur le même ordinateur. nginx convient à ce type de travail, mais vous pouvez également utiliser un autre logiciel (par exemple pound).

Je pense que la deuxième solution est préférable car vous n'avez pas du tout besoin de manipuler les configurations des serveurs Web: un seul proxy effectue le proxy et plusieurs serveurs Web effectuent le service Web. Si vous devez ajouter des serveurs ou déplacer des hôtes virtuels, cette architecture est plus facile à gérer.

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

La latence ajoutée due au décodage de la demande deux fois (une fois par le proxy, une fois par son destinataire) est négligeable et plus que compensée par l'accélération fournie par le proxy lui-même.

8
LSerni