Comment configurer un cluster Apache haute disponibilité équilibré en charge – Bien choisir son serveur d impression
Comment configurer un cluster Apache haute disponibilité équilibré en charge
Version 1.0
Auteur: Falko Timme
Ce didacticiel montre comment configurer un cluster de serveurs Web Apache à deux nœuds qui offre une haute disponibilité. Devant le cluster Apache, nous créons un équilibreur de charge qui répartit les demandes entrantes entre les deux nœuds Apache. Parce que nous ne voulons pas que l'équilibreur de charge devienne un autre "point de défaillance unique", nous devons également fournir une haute disponibilité pour l'équilibreur de charge. Par conséquent, notre équilibreur de charge sera en fait composé de deux nœuds d'équilibreur de charge
qui se surveillent mutuellement en utilisant battement de coeuret si un équilibreur de charge échoue, l'autre prend le relais en silence.
L'avantage d'utiliser un équilibreur de charge par rapport à l'utilisation
round robin DNS est qu'il prend en charge la charge sur les nœuds du serveur Web et essaie de diriger les demandes vers le nœud avec moins de charge, et il prend également en charge les connexions / sessions. De nombreuses applications Web (par exemple, logiciel de forum, paniers d'achat, etc.) utilisent des sessions, et si vous êtes dans une session sur le nœud Apache 1, vous perdriez cette session si le nœud 2 répondait soudainement à vos demandes. En plus de cela, si l'un des nœuds Apache tombe en panne, l'équilibreur de charge s'en rend compte et dirige toutes les demandes entrantes vers le nœud restant, ce qui ne serait pas possible avec le DNS à tour de rôle.
Pour cette configuration, nous avons besoin de quatre nœuds (deux nœuds Apache et deux nœuds d'équilibrage de charge) et cinq Adresses IP: une pour chaque nœud et une adresse IP virtuelle qui sera partagée par les nœuds d'équilibrage de charge et utilisée pour les requêtes HTTP entrantes.
J'utiliserai la configuration suivante ici:
- Noeud Apache 1: webserver1.example.com (webserver1) – Adresse IP: 192.168.0.101; Racine du document Apache: / var / www
- Noeud Apache 2: webserver2.example.com (webserver2) – Adresse IP: 192.168.0.102; Racine du document Apache: / var / www
- Noeud d'équilibrage de charge 1: loadb1.example.com (loadb1) – Adresse IP: 192.168.0.103
- Noeud d'équilibrage de charge 2: loadb2.example.com (loadb2) – Adresse IP: 192.168.0.104
- Adresse IP virtuelle: 192.168.0.105 (utilisé pour les demandes entrantes)
Jetez un œil au dessin sur http://www.linuxvirtualserver.org/docs/ha/ultramonkey.html pour comprendre à quoi ressemble cette configuration.
Dans ce tutoriel, je vais utiliser Debian Sarge pour les quatre nœuds. Je suppose que vous avez installé une installation Debian de base sur les quatre nœuds et que vous avez installé Apache sur webserver1 et webserver2, avec / var / www étant la racine du document du site Web principal.
Je veux d'abord dire que ce n'est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d'atteindre cet objectif, mais c'est la voie que je prends. Je ne donne aucune garantie que cela fonctionnera pour vous!
1 Activer
IPVS sur les équilibreurs de charge
Nous devons d'abord activer IPVS sur nos équilibreurs de charge.
IPVS (IP Virtual Server) implémente l'équilibrage de charge de la couche transport à l'intérieur du noyau Linux, appelé commutation Layer-4.
loadb1 / loadb2:
echo ip_vs_dh >> / etc / modules
echo ip_vs_ftp >> / etc / modules
echo ip_vs >> / etc / modules
echo ip_vs_lblc >> / etc / modules
echo ip_vs_lblcr >> / etc / modules
echo ip_vs_lc >> / etc / modules
echo ip_vs_nq >> / etc / modules
echo ip_vs_rr >> / etc / modules
echo ip_vs_sed >> / etc / modules
echo ip_vs_sh >> / etc / modules
echo ip_vs_wlc >> / etc / modules
echo ip_vs_wrr >> / etc / modules
Ensuite, nous faisons ceci:
loadb1 / loadb2:
modprobe ip_vs_dh
modprobe ip_vs_ftp
modprobe ip_vs
modprobe ip_vs_lblc
modprobe ip_vs_lblcr
modprobe ip_vs_lc
modprobe ip_vs_nq
modprobe ip_vs_rr
modprobe ip_vs_sed
modprobe ip_vs_sh
modprobe ip_vs_wlc
modprobe ip_vs_wrr
Si vous obtenez des erreurs, alors votre noyau n'a probablement pas été compilé avec le support IPVS, et vous devez compiler un nouveau noyau avec le support IPVS (ou installer une image du noyau avec le support IPVS) maintenant.
2 Installez Ultra Monkey sur les équilibreurs de charge
Ultra Monkey est un projet visant à créer des services à charge équilibrée et hautement disponibles sur un réseau local à l'aide de composants Open Source sur le système d'exploitation Linux; le package Ultra Monkey fournit battement de coeur (utilisé par les deux équilibreurs de charge pour se surveiller mutuellement et vérifier si l'autre nœud est toujours en vie) et ldirectord, l'équilibreur de charge réel.
Pour installer Ultra Monkey, nous devons modifier /etc/apt/sources.list maintenant et ajoutez ces deux lignes
(ne supprimez pas les autres référentiels):
loadb1 / loadb2:
vi /etc/apt/sources.list
|
Ensuite, nous faisons ceci:
loadb1 / loadb2:
mise à jour apt-get
et installez Ultra Monkey:Annonces
loadb1 / loadb2:
apt-get install ultramonkey
Si vous voyez cet avertissement:
|
vous pouvez l'ignorer.
Lors de l'installation d'Ultra Monkey, une question vous sera posée. Répondez comme suit:
Voulez-vous charger automatiquement les règles IPVS au démarrage?
<- Non
Sélectionnez une méthode démon.
<- aucun
Commentaires
Laisser un commentaire