Question

Mon site Web est en croissance. J'ai besoin de partitionner des ensembles de fonctionnalités sur différents groupes de serveurs au lieu de toutes les exécuter sur une seule copie de serveur. J'ai 8 serveurs identiques dans une configuration d'équilibrage de la charge réseau Windows.

Le problème est le suivant: je dois conserver le même espace URL. Quelle serait une solution viable? Je ne souhaite pas créer de nouveaux domaines pour les jeux de fonctionnalités. Je pense à une sorte de proxy inverse avec des capacités de réécriture / routage basées sur les URL (?!?). Des recommandations en termes de logiciel ou de matériel? Cela va remplacer la configuration de WNLB car elle ne dispose pas des fonctionnalités dont j'ai besoin.

Était-ce utile?

La solution

Il existe en effet plusieurs solutions pour mettre en œuvre l'équilibrage de charge:

  1. DNS Round-Robin
  2. Équilibrage de la charge DNS (avec lbnamed)
  3. Tournoi des procurations
  4. Round / Robin matériel / TCP

J'ai compris 1) et 2) ne sont pas une option ici, alors ... si vous avez de l'argent et des besoins très performants , optez pour 4). Sinon, allez pour 3).

Pour Proxy Round-Robin, là encore, plusieurs solutions sont possibles: Apache mod_rewrite , mod_proxy Apache , Squid (et sûrement beaucoup d'autres que je ne connais pas).

  • For " dumb " l'équilibrage de charge, il existe un exemple dans le guide de réécriture d'URL d'Apache mod_rewrite (voir la section La table ronde sur le trafic proxy ).

  • Apache mod_proxy peut agir en tant que proxy pour connecter des clients à Internet, mais est généralement utilisé en tant que proxy inverse pour rediriger une URL sur un autre serveur . Il n'a pas de fonctionnalité de cache (mais peut être utilisé avec mod_cache et mod_rewrite ...).

  • Squid est un cache de proxy et est généralement utilisé pour connecter des clients à Internet. Mais il peut également être utilisé en tant que proxy inverse et être configuré pour mettre en cache les demandes et accélérer la livraison du contenu.

Comme vous pouvez le constater, le choix de l’un d’eux dépend de quoi et de la façon dont vous voulez utiliser un proxy. Dans votre cas, je considérerais d’exécuter Apache mod_proxy ou Squid si vous souhaitez mettre en cache sous Linux (s’il s’agit d’une option).

En ce qui concerne le matériel, je ne suis pas un spécialiste, mais je pense un "petit" à " moyen " serveur dédié devrait suffire. N'oubliez pas que toutes les demandes passent par cette machine, donc son dimensionnement dépend fortement de votre trafic, ce qui semble correct. Cela peut nécessiter de creuser avec des données réelles.

Autres conseils

Si vous avez 8 serveurs, je vous conseillerais d’en utiliser 7 pour partager la charge de travail et d’utiliser un serveur frontal pour agir en tant que proxy.

Votre serveur frontal peut exécuter Apache et utiliser mod_proxy pour déléguer chaque demande HTTP à l'un des 7 serveurs principaux. Vous pouvez définir mod_proxy pour déléguer le travail en fonction de l'URL entrante si vous le souhaitez. Vous pouvez par exemple avoir un serveur servant la vidéo, deux entrées de blogs servant et le reste faisant le reste.

Votre serveur frontal serait extrêmement léger: utiliser Apache ou presque. Vous pouvez également mettre en cache votre contenu statique sur ce serveur frontal à l’aide de Squid ou du mod_cache d’Apache, de sorte que les demandes d’images, js, css et autres contenus statiques ne parviennent jamais sur votre serveur principal une fois ce dernier mis en cache.

EDIT: Je viens de lire le commentaire de Pascal et il suggère la même chose. Je vais le modifier +1

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top