Outils pour utilisateurs

Outils du site


haproxy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
haproxy [2025/02/06 21:01] – [Principes] administrateurhaproxy [2025/02/12 11:48] (Version actuelle) – [Sécurisation SSL] administrateur
Ligne 7: Ligne 7:
 __**Principe**__ __**Principe**__
  
-  * Plusieurs serveurs possèdent un service et des données identiques (par exemple une application Web)+  * 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**, les prochains échanges se passent ensuite directement entre le client et le serveur désigné   * un **répartiteur** (**HA Proxy**) est connu des utilisateurs (par son IP). Il redirige les demandes vers l'un des serveurs du **cluster**, les prochains échanges se passent ensuite directement entre le client et le serveur désigné
-  * le répartiteur organise la charge entre les différents serveurs (par exemple chacun son tour, ou plus souvent vers un serveur plus performant) +  * le ** répartiteur**<wrap em> distribue la charge</wrap> entre les différents serveurs (par exemple chacun son tour, ou plus souvent vers un serveur plus performant) 
-  * le **répartiteur** peut détecter la panne d'un des serveurs pour éviter de lui envoyer des demandes qui n'aboutiront pas+  * le **répartiteur** peut <wrap em>détecter la panne</wrap> d'un des serveurs pour éviter de lui envoyer des demandes qui n'aboutiront pas (il assure alors une <wrap em>tolérance de panne</wrap>)
  
 ===== Mise en place ===== ===== Mise en place =====
Ligne 32: Ligne 32:
 La configuration complète du fichier est décrite ici [[https://cbonte.github.io/haproxy-dconv/2.6/configuration.html]]. La configuration complète du fichier est décrite ici [[https://cbonte.github.io/haproxy-dconv/2.6/configuration.html]].
  
-Le fichier de configuration est **// /etc/haproxy/haproxy.cfg //**. Dans ses options de base, on trouvera +Le fichier de configuration est **// /etc/haproxy/haproxy.cfg //**. Dans ses options de base, on <wrap em>ajoutera</wrap>
 <code apache> <code apache>
 frontend <nomF_E> frontend <nomF_E>
Ligne 44: Ligne 44:
 </code> </code>
  
-  * bind : définit la façon dont le serveur est joignable par les utilisateurs +  * <wrap em>bind</wrap> : définit la façon dont le serveur est joignable par les utilisateurs 
-  * defautlt_backend : renvoi vers la section suivante +  * <wrap em>defautlt_backend</wrap> : renvoi vers la section suivante 
-  * balance : mode de répartition entre les serveurs Web +  * <wrap em>balance</wrap> : mode de répartition entre les serveurs Web 
-  * server : décrit chaque serveur Web+  * <wrap em>server</wrap> : décrit chaque serveur Web
  
 +<WRAP center round info 100%>
 === Exemple === === Exemple ===
 <code apache> <code apache>
Ligne 60: Ligne 61:
   server web2 192.168.100.215:80    server web2 192.168.100.215:80 
 </code> </code>
 +</WRAP>
 +
  
 ==== Vérification de la configuration ==== ==== Vérification de la configuration ====
Ligne 68: Ligne 71:
 ===== Options avancées ===== ===== Options avancées =====
 Le fonctionnement de base, sur l'algorithme roundrobin (ou tourniquet : chacun son tour) peut être optimisé de plusieurs manières **cumulables**.  Le fonctionnement de base, sur l'algorithme roundrobin (ou tourniquet : chacun son tour) peut être optimisé de plusieurs manières **cumulables**. 
-  - en assurant un **//poids//** différent selon les capacités et la puissance des serveurs avec l'option //**weight**// +  - en assurant un **//poids//** différent selon les capacités et la puissance des serveurs avec l'option //**<wrap em>weight</wrap>**// 
-  - en vérifiant la disponibilité d'un serveur Web avant de lui adresser des demandes avec l'option **//check//** +  - en vérifiant la disponibilité d'un serveur Web avant de lui adresser des demandes avec l'option **//<wrap em>check</wrap>//** 
-  - 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</wrap>
  
 ==== Affectation d'un poids ==== ==== Affectation d'un poids ====
 +<WRAP center round info 100%>
 <code lscript> <code lscript>
 server web1 10.22.100.212:80 weight 100  server web1 10.22.100.212:80 weight 100 
Ligne 78: Ligne 82:
 </code> </code>
 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
 +</WRAP>
 +
  
 ==== Vérification de la disponibilité ==== ==== Vérification de la disponibilité ====
 +<WRAP center round info 100%>
 <code lscript>server web1 10.22.100.212:80 check  <code lscript>server web1 10.22.100.212:80 check 
 server web2 10.22.100.212:80 check </code> server web2 10.22.100.212:80 check </code>
 Chaque serveur sera vérifié avant de lui adresser une requête. Chaque serveur sera vérifié avant de lui adresser une requête.
 +</WRAP>
 +
  
  
 ==== Limitation du nombre d'utilisateurs instantanée ==== ==== Limitation du nombre d'utilisateurs instantanée ====
 +<WRAP center round info 100%>
 <code lscript>server web1 10.22.100.212:80 maxconn 20 <code lscript>server web1 10.22.100.212:80 maxconn 20
 server web2 10.22.100.212:80 maxconn 20 </code> server web2 10.22.100.212:80 maxconn 20 </code>
 Chaque serveur sera limité à 20 utilisateurs simultanément Chaque serveur sera limité à 20 utilisateurs simultanément
 +</WRAP>
 +
  
 ==== 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</wrap> : tourniquet passant circulairement vers chacune des serveurs 
-  * leastconn: le serveur sélectionné sera celui ayant précédemment reçu le moins de connexions ; +  * <wrap em>leastconn</wrap>: le serveur sélectionné sera celui ayant précédemment reçu le moins de connexions ; 
-  * source : le serveur est sélectionné en fonction de l’IP source du client ; +  * <wrap em>source</wrap> : le serveur est sélectionné en fonction de l’IP source du client ; 
-  * uri : le choix du serveur est fonction du début de l’URI demandée ; +  * <wrap em>uri</wrap> : le choix du serveur est fonction du début de l’URI demandée ; 
-  * url_param : le choix du serveur est fonction de paramètres présents dans l’URL demandée ; +  * <wrap em>url_param</wrap> : le choix du serveur est fonction de paramètres présents dans l’URL demandée ; 
-  * hdr : le choix du serveur est fonction d’un champ présent dans l’en-tête HTTP (Host, User-Agent, ...).+  * <wrap em>hdr</wrap> : le choix du serveur est fonction d’un champ présent dans l’en-tête HTTP (Host, User-Agent, ...).
  
 ===== Sécurisation SSL ===== ===== Sécurisation SSL =====
Ligne 115: Ligne 127:
 </code> </code>
  
 +<WRAP center round info 100%>
 === Exemple === === Exemple ===
 <code apache> <code apache>
Ligne 128: Ligne 141:
   server web2 192.168.100.215:443   server web2 192.168.100.215:443
 </code> </code>
 +</WRAP>
 +
  
  
haproxy.1738875703.txt.gz · Dernière modification : de administrateur