Différences entre versions de « Configurer un HA Proxy sur Cloudstack »
Ligne 13 : | Ligne 13 : | ||
<span data-link_translate_es_title="Configurar a un Proxy HA de Cloudstack" data-link_translate_es_url="Configurar+a+un+Proxy+HA+de+Cloudstack"></span>[[:es:Configurar a un Proxy HA de Cloudstack]][[es:Configurar a un Proxy HA de Cloudstack]] | <span data-link_translate_es_title="Configurar a un Proxy HA de Cloudstack" data-link_translate_es_url="Configurar+a+un+Proxy+HA+de+Cloudstack"></span>[[:es:Configurar a un Proxy HA de Cloudstack]][[es:Configurar a un Proxy HA de Cloudstack]] | ||
<span data-link_translate_en_title="Configure a Proxy HA on Cloudstack" data-link_translate_en_url="Configure+a+Proxy+HA+on+Cloudstack"></span>[[:en:Configure a Proxy HA on Cloudstack]][[en:Configure a Proxy HA on Cloudstack]] | <span data-link_translate_en_title="Configure a Proxy HA on Cloudstack" data-link_translate_en_url="Configure+a+Proxy+HA+on+Cloudstack"></span>[[:en:Configure a Proxy HA on Cloudstack]][[en:Configure a Proxy HA on Cloudstack]] | ||
+ | |||
+ | {{#seo: | ||
+ | |title=Configurer un HA Proxy sur Cloudstack | ||
+ | |title_mode=append | ||
+ | |keywords=these,are,your,keywords | ||
+ | |description=Comment configurer un HA Proxy sur Cloudstack | ||
+ | |image=Uploaded_file.png | ||
+ | |image_alt=Wiki Logo | ||
+ | }} | ||
+ | |||
==Introduction== | ==Introduction== | ||
− | Vous souhaitez configurer un ''' | + | Vous souhaitez configurer un '''[https://www.ikoula.com/fr/cloud-public/oneclick/haproxy HAProxy]''' sur la plateforme [https://www.ikoula.com/fr/cloudstack Cloudstack]. Cet article vous expliquera la démarche à suivre au travers d'un exemple de configuration. |
==Mise en place== | ==Mise en place== |
Version actuelle datée du 20 septembre 2021 à 15:23
fr:Configurer un HA Proxy sur Cloudstack he:הגדר פרוקסי HA-Cloudstack ro:Configuraţi un Proxy HA pe Cloudstack ru:Настроить прокси на Cloudstack pl:Konfigurowanie serwera Proxy HA w Cloudstack ja:Cloudstack で HA プロキシを構成します。 ar:تكوين وكيل هكتار في كلودستاك zh:配置一个代理医管局对 Cloudstack de:Konfigurieren Sie einen Proxy HA auf Cloudstack nl:Configureer een Proxy HA op Cloudstack it:Configurare un Proxy HA Cloudstack pt:Configurar um Proxy HA em Cloudstack es:Configurar a un Proxy HA de Cloudstack en:Configure a Proxy HA on Cloudstack
Introduction
Vous souhaitez configurer un HAProxy sur la plateforme Cloudstack. Cet article vous expliquera la démarche à suivre au travers d'un exemple de configuration.
Mise en place
Voici la procédure à suivre afin de mettre en place un HA Proxy sur une instance Debian 8 "Jessie" sous Cloudstack.
Note:Cette démarche s'applique également dans le cadre d'une prestation dédiée.
Créer la nouvelle instance HAProxy
Vous trouverez les procédures de création d'une instance Cloudstack en direct-routing sur Deploiement d'une instance en zone direct-routing et en advance-routing sur Deploiement d'une instance en zone advanced-routing
Configurer la nouvelle instance HAProxy
- Notre VM est maintenant démarrée
- Nous pouvons nous connecter à partir de la console intégrée ou par ssh
Pré-requis
L'un des pré-requis essentiel est de conserver son système le plus à jour possible.
apt-get update apt-get upgrade
Afin de conserver votre système Debian à jour, assurez-vous de posséder une liste des dépôts officiels. Vous pourrez trouver une liste des dépôts disponibles chez Ikoula et les instructions d'installation à cette adresse.
Sur un serveur de production, pensez à effectuer ces opérations pendant les heures creuses afin de minimiser l'impact de vos actions.
Pour l'installation de notre instance de Loadbalancing sous Cloudstack nous aurons besoin du service HA Proxy.
Installation d'HA Proxy
- Pour installer HA Proxy en version 1.5, exécutez la commande suivante dans votre terminal
apt-get install haproxy
- Si vous souhaitez la dernière version de HA Proxy, la version 1.6, exécutez les commandes suivantes
# Ajout du repo echo deb http://httpredir.debian.org/debian jessie-backports main | tee /etc/apt/sources.list.d/backports.list apt-get install debian-keyring # Recuperation de la cle gpg gpg --keyring /usr/share/keyrings/debian-keyring.gpg --export bernat@debian.org | apt-key add - # Mise a jour des depots apt-get update # Installation de haproxy apt-get install haproxy -t jessie-backports-1.6
Activation d'HA Proxy
- HA Proxy est maintenant installé, nous devons à présent l'activer en remplaçant la valeur ENABLED=0 par ENABLED=1 dans les deux fichiers /etc/default/haproxy et /etc/init.d/haproxy
# activation de HA Proxy dans /etc/default/haproxy sed -i "s/ENABLED=0/ENABLED=1/g" /etc/default/haproxy # activation de HA Proxy dans /etc/init.d/haproxy sed -i "s/ENABLED=0/ENABLED=1/g" /etc/init.d/haproxy
Configuration d'HA Proxy
La configuration de HA Proxy est réalisée dans le fichier /etc/haproxy/haproxy.cfg .
- Voici un exemple de configuration d'HAProxy
global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull contimeout 5000 clitimeout 50000 srvtimeout 50000 errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http listen cluster_web xxx.xxx.xxx.xxx:80 mode http balance roundrobin option httpclose option forwardfor server web1 yyy.yyy.yyy.yyy:80 check server web2 zzz.zzz.zzz.zzz:80 check stats enable stats hide-version stats refresh 30s stats show-node stats auth ikoula:ikoula stats uri /stats
L'adresse ip xxx.xxx.xxx.xxx étant l'adresse ip de notre serveur de répartition de charge, les adresses yyy.yyy.yyy.yyy et zzz.zzz.zzz.zzz sont nos serveurs web placés derrière le loadbalancer.
listen cluster_web | L'adresse et le port sur lesquels le service HA Proxy devra écouter les connexions. |
mode | Le mode du balancement, dans notre exemple http pour du web |
balance | L'algorithme utilisé pour la répartition de charge, dans notre exemple RoundRobin Les valeurs disponibles sont: RoundRobin, Source, Least connection, First Response |
server | Déclaration des différents serveurs placés derrière notre loadbalancer, dans notre exemple web1 et web2. |
stats | Permet de configurer l'accès à la page de statistiques du loadbalancer Dans notre exemple la page sera accessible sur xxx.xxx.xxx.xxx/stats avec ikoula/ikoula comme login et mot de passe |
Démarrage d'HA Proxy
- Nous pouvons à présent démarrer HA Proxy
service haproxy start
ou
etc/init.d/haproxy start
- En nous rendant sur notre ip xxx.xxx.xxx.xxx/stats et en utlisant notre login et mot de passe nous arrivons sur la page d'administration de HA Proxy.
- Nous pouvons à présent nous connecter à nos serveurs en SSH en tapant
# Serveur web1 ssh root@yyy.yyy.yyy.yyy # Serveur web2 ssh root@zzz.zzz.zzz.zzz
Configurer les serveurs web
- Si les serveurs ne possèdent pas encore de service web il faut en installer un, par exemple
apt-get install apache2 php5
- Une fois les services web installés, ou si le serveur en possédait déjà un, web1 et web2 apparaîtront en vert dans la page stats
- Si vous tentez d'accéder au serveur en utilisant l'adresse xxx.xxx.xxx vous tombez sur la page de test du serveur web1 ou web2 selon la répartition effectuée
Configurer la persistance
La persistance par Source IP
Afin de configurer la persistance par Source IP il suffit de modifier le mode de balancement dans le fichier de configuration de HA Proxy en ajoutant des options sticky.
- Activer la persistance par Source IP grâce à une stick-table, voici l'exemple avec notre configuration
listen cluster_web xxx.xxx.xxx.xxx:80 mode http # Modifier le mode de balancement balance source hash-type consistent # Ajouter une stick-table afin de garder en mémoire les IP stick-table type ip size 1m expire 1h stick on src option httpclose option forwardfor server web1 yyy.yyy.yyy.yyy:80 check server web2 zzz.zzz.zzz.zzz:80 check stats enable stats hide-version stats refresh 30s stats show-node stats auth utilisateur:motdepasse stats uri /stats
L'exemple ci-dessus permet de mettre en place une persistance du load-balancing basée sur l'IP de l'utilisateur. Cette persistance est assurée par le biais d'une stick-table qui garde en mémoire les adresses IP ayant contactées le serveur.
Cette stick-table possède une taille de 1Mo et expire toutes les heures. Lorsqu'un utilisateur est attaché à un serveur il reste sur ce même serveur jusqu'à expiration de la table ou en cas d'erreur du serveur.
La persistance par Cookie
Une autre méthode pour assurer la persistance du balancement consiste à utiliser un cookie. Un cookie est un petit fichier placé sur l'ordinateur de l'utilisateur afin de pouvoir stocker les informations du serveur.
Méthode du cookie-insert
Le premier exemple est la création d'un cookie supplémentaire destiné spécifiquement à HA Proxy.
- Modifier le fichier de configuration d'HA Proxy et ajouter les lignes suivantes pour notre configuration
listen cluster_web xxx.xxx.xxx.xxx:80 mode http # Modifier le mode de balancement balance roundrobin # option du cookie cookie SRVNAME insert indirect nocache option httpclose option forwardfor server web1 yyy.yyy.yyy.yyy:80 cookie WeB1 check server web2 zzz.zzz.zzz.zzz:80 cookie WeB2 check stats enable stats hide-version stats refresh 30s stats show-node stats auth utilisateur:motdepasse stats uri /stats
L'exemple ci-dessus permet de mettre en place la persistance de nos sessions par le biais d'un cookie dédié. Lors d'une connexion le load-balancer va rediriger le client vers l'un des deux serveurs et ajouter un cookie nommé SRVNAME ayant pour valeur WeB1 ou WeB2 suivant la répartition effectuée.
L'option indirect permet d'éviter la génération d'un cookie si un autre cookie valide est déjà présent pour le visiteur et nocache permet d'éviter la mise en cache du cookie entre le visiteur et le load-balancer.
Méthode cookie-prefix
Le second exemple est le pré-fixage d'un cookie déjà existant, cette méthode peut être utile si l'on souhaite la persistance uniquement sur certains cookies ou que l'on ne souhaite pas créer un cookie dédié à HA Proxy.
- Modifier le fichier de configuration d'HA Proxy et ajouter les lignes suivantes pour notre configuration
listen cluster_web xxx.xxx.xxx.xxx:80 mode http # Modifier le mode de balancement balance roundrobin # option du cookie cookie PHPSESSID prefix indirect nocache option httpclose option forwardfor server web1 yyy.yyy.yyy.yyy:80 cookie WeB1 check server web2 zzz.zzz.zzz.zzz:80 cookie WeB2 check stats enable stats hide-version stats refresh 30s stats show-node stats auth utilisateur:motdepasse stats uri /stats
L'exemple ci-dessus permet de mettre en place la persistance de nos sessions par le biais d'un préfixage d'un cookie existant. Lors d'une connexion le load-balancer va rediriger le client vers l'un des deux serveurs et ajouter un préfixe au cookie nommé PHPSESSID ayant pour valeur WeB1 ou WeB2 suivant la répartition effectuée.
L'option indirect permet d'éviter la génération d'un cookie si un autre cookie valide est déjà présent pour le visiteur et nocache permet d'éviter la mise en cache du cookie entre le visiteur et le load-balancer.
Configurer le Keep-Alive
Selon votre configuration il peut être nécessaire d'activer le keep-alive.
Le keep-alive permet au load-balancer de réutiliser la connexion existante entre le serveur et l'utilisateur, plutôt que d'initier une nouvelle connexion à chaque requêtes.
- Modifier le fichier de configuration d'HA Proxy et ajouter les lignes suivantes pour notre configuration
listen cluster_web xxx.xxx.xxx.xxx:80 mode http balance roundrobin # Modifier la directive de fermeture option http-server-close # Ajouter un delai de 3000 secondes avant fermeture timeout http-keep-alive 3000 option forwardfor server web1 yyy.yyy.yyy.yyy:80 check server web2 zzz.zzz.zzz.zzz:80 check stats enable stats hide-version stats refresh 30s stats show-node stats auth utilisateur:motdepasse stats uri /stats
Mettre en place la gestion SSL
Il peut être utile de mettre en place la gestion de la redirection SSL sur votre site, par exemple dans le cas d'un site disposant d'un espace sécurisé.
Afin de mettre en place la redirection HTTP -> HTTPS sur son HA Proxy une documentation est disponible: Mettre en place une redirection SSL HA Proxy
Activer l'actualisation automatique des commentaires