Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| haproxy [2023/03/02 20:26] – [Configuration de base] admin | haproxy [2025/02/12 11:48] (Version actuelle) – [Sécurisation SSL] administrateur | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Pour assurer une performance supplémentaire, | Pour assurer une performance supplémentaire, | ||
| + | |||
| + | __**Principe**__ | ||
| + | |||
| + | * Plusieurs serveurs possèdent un service et des données identiques (par exemple une application Web) pour constituer un **cluster** | ||
| + | * un **répartiteur** (**HA Proxy**) est connu des utilisateurs (par son IP). Il redirige les demandes vers l'un des serveurs du **cluster**, | ||
| + | * le ** répartiteur**< | ||
| + | * le **répartiteur** peut <wrap em> | ||
| ===== Mise en place ===== | ===== Mise en place ===== | ||
| Ligne 25: | Ligne 32: | ||
| La configuration complète du fichier est décrite ici [[https:// | La configuration complète du fichier est décrite ici [[https:// | ||
| - | Le fichier de configuration est **// / | + | Le fichier de configuration est **// / |
| <code apache> | <code apache> | ||
| frontend < | frontend < | ||
| Ligne 34: | Ligne 41: | ||
| balance < | balance < | ||
| server < | server < | ||
| - | server < | + | server < |
| </ | </ | ||
| - | * bind : définit la façon dont le serveur est joignable par les utilisateurs | + | * <wrap em>bind</ |
| - | * defautlt_backend : renvoi vers la section suivante | + | * <wrap em>defautlt_backend</ |
| - | * balance : mode de répartition entre les serveurs Web | + | * <wrap em>balance</ |
| - | * server : décrit chaque serveur Web | + | * <wrap em>server</ |
| + | <WRAP center round info 100%> | ||
| === Exemple === | === Exemple === | ||
| <code apache> | <code apache> | ||
| Ligne 53: | Ligne 61: | ||
| server web2 192.168.100.215: | server web2 192.168.100.215: | ||
| </ | </ | ||
| + | </ | ||
| + | |||
| ==== Vérification de la configuration ==== | ==== Vérification de la configuration ==== | ||
| Ligne 61: | Ligne 71: | ||
| ===== Options avancées ===== | ===== Options avancées ===== | ||
| Le fonctionnement de base, sur l' | Le fonctionnement de base, sur l' | ||
| - | - en assurant un **// | + | - en assurant un **// |
| - | - en vérifiant la disponibilité d'un serveur Web avant de lui adresser des demandes avec l' | + | - en vérifiant la disponibilité d'un serveur Web avant de lui adresser des demandes avec l' |
| - | - en utilisant un mode de répartition moins classique que le roundrobin | + | - en utilisant un mode de répartition moins classique que le <wrap em>roundrobin</ |
| ==== Affectation d'un poids ==== | ==== Affectation d'un poids ==== | ||
| + | <WRAP center round info 100%> | ||
| <code lscript> | <code lscript> | ||
| server web1 10.22.100.212: | server web1 10.22.100.212: | ||
| Ligne 71: | Ligne 82: | ||
| </ | </ | ||
| Le premier serveur recevra 2 fois plus de requêtes que le second | Le premier serveur recevra 2 fois plus de requêtes que le second | ||
| + | </ | ||
| + | |||
| ==== Vérification de la disponibilité ==== | ==== Vérification de la disponibilité ==== | ||
| + | <WRAP center round info 100%> | ||
| <code lscript> | <code lscript> | ||
| server web2 10.22.100.212: | server web2 10.22.100.212: | ||
| Chaque serveur sera vérifié avant de lui adresser une requête. | Chaque serveur sera vérifié avant de lui adresser une requête. | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Limitation du nombre d' | ||
| + | <WRAP center round info 100%> | ||
| + | <code lscript> | ||
| + | server web2 10.22.100.212: | ||
| + | Chaque serveur sera limité à 20 utilisateurs simultanément | ||
| + | </ | ||
| + | |||
| ==== Modes de répartition ==== | ==== Modes de répartition ==== | ||
| les modes possibles : | les modes possibles : | ||
| - | * roundrobin : tourniquet passant circulairement vers chacune des serveurs | + | * <wrap em>roundrobin</ |
| - | * leastconn: le serveur sélectionné sera celui ayant précédemment reçu le moins de connexions ; | + | * <wrap em>leastconn</ |
| - | * source : le serveur est sélectionné en fonction de l’IP source du client ; | + | * <wrap em>source</ |
| - | * uri : le choix du serveur est fonction du début de l’URI demandée ; | + | * <wrap em>uri</ |
| - | * url_param : le choix du serveur est fonction de paramètres présents dans l’URL demandée ; | + | * <wrap em>url_param</ |
| - | * hdr : le choix du serveur est fonction d’un champ présent dans l’en-tête HTTP (Host, User-Agent, ...). | + | * <wrap em>hdr</ |
| + | |||
| + | ===== Sécurisation SSL ===== | ||
| + | |||
| + | Le fichier de configuration est **// haproxy.cfg //**. Dans ses options on devra mettre les ports en 443 et ajouter mode tcp : | ||
| + | <code apache> | ||
| + | frontend < | ||
| + | mode tcp | ||
| + | bind < | ||
| + | default_backend < | ||
| + | |||
| + | backend < | ||
| + | balance < | ||
| + | mode tcp | ||
| + | server < | ||
| + | server < | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 100%> | ||
| + | === Exemple === | ||
| + | <code apache> | ||
| + | frontend proxypublic | ||
| + | mode tcp | ||
| + | bind 10.22.30.210: | ||
| + | default_backend fermeweb | ||
| + | |||
| + | backend fermeweb | ||
| + | mode tcp | ||
| + | balance roundrobin | ||
| + | server web1 192.168.100.212: | ||
| + | server web2 192.168.100.215: | ||
| + | </ | ||
| + | </ | ||
| + | |||