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 [2023/03/02 20:01] – [Configuration] adminhaproxy [2024/03/27 08:14] (Version actuelle) usr2224
Ligne 8: Ligne 8:
 Pour installer HA Proxy : Pour installer HA Proxy :
 <code lscript>apt update <code lscript>apt update
-apt upgrade 
 apt install haproxy</code> apt install haproxy</code>
  
 Pour vérifier la version installée : Pour vérifier la version installée :
-haproxy -v+<code lscript>haproxy -v</code>
  
-Le démon ne démarre pas car le fichier de configuration par défaut ne contient pas toutes les directives nécessaires. Il est nécessaire de procéder à une configuration minimale.+<WRAP center round important 80%> 
 +Juste après l'installation, le démon ne démarre pas car le fichier de configuration par défaut ne contient pas toutes les directives nécessaires. Il est nécessaire de procéder à une configuration minimale. 
 +</WRAP>
  
-===== Configuration =====+ 
 +===== Configuration de base =====
 HA Proxy fonctionne sur deux parties :  HA Proxy fonctionne sur deux parties : 
   * la partie au contact des utilisateurs : **Front end**   * la partie au contact des utilisateurs : **Front end**
Ligne 29: Ligne 31:
   default_backend <nomB_E>   default_backend <nomB_E>
  
-backend fermeweb balance roundrobin +backend <nomB_E>  
-  option httpclose +  balance <modeRepartition>
-  option httpchk HEAD / HTTP/1.0+
   server <nomServ1> <ip_serv1>:<port_serv1>   server <nomServ1> <ip_serv1>:<port_serv1>
-  server <nomServ2> <ip_serv2>:<port_serv1>+  server <nomServ2> <ip_serv2>:<port_serv2>
 </code> </code>
 +
 +  * bind : définit la façon dont le serveur est joignable par les utilisateurs
 +  * defautlt_backend : renvoi vers la section suivante
 +  * balance : mode de répartition entre les serveurs Web
 +  * server : décrit chaque serveur Web
 +
 +=== Exemple ===
 +<code apache>
 +frontend proxypublic
 +  bind 10.22.30.210:80
 +  default_backend fermeweb
 +
 +backend fermeweb 
 +  balance roundrobin
 +  server web1 192.168.100.212:80 
 +  server web2 192.168.100.215:80 
 +</code>
 +
 +==== Vérification de la configuration ====
 +<code lscript>haproxy -c -f /etc/haproxy/haproxy.cfg</code>
 +  * -c pour vérifier (check) le fichier
 +  * -f pour spécifier le fichier de configuration
 +
 +===== Options avancées =====
 +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 vérifiant la disponibilité d'un serveur Web avant de lui adresser des demandes avec l'option **//check//**
 +  - en utilisant un mode de répartition moins classique que le roundrobin
 +
 +==== Affectation d'un poids ====
 +<code lscript>
 +server web1 10.22.100.212:80 weight 100 
 +server web2 10.22.100.212:80 weight 50 
 +</code>
 +Le premier serveur recevra 2 fois plus de requêtes que le second
 +
 +==== Vérification de la disponibilité ====
 +<code lscript>server web1 10.22.100.212:80 check 
 +server web2 10.22.100.212:80 check </code>
 +Chaque serveur sera vérifié avant de lui adresser une requête.
 +
 +
 +==== Limitation du nombre d'utilisateurs instantanée ====
 +<code lscript>server web1 10.22.100.212:80 maxconn 20
 +server web2 10.22.100.212:80 maxconn 20 </code>
 +Chaque serveur sera limité à 20 utilisateurs simultanément
 +
 +==== Modes de répartition ====
 +les modes possibles :
 +  * roundrobin : tourniquet passant circulairement vers chacune des serveurs
 +  * leastconn: 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 ;
 +  * uri : 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 ;
 +  * hdr : le choix du serveur est fonction d’un champ présent dans l’en-tête HTTP (Host, User-Agent, ...).
 +
 +===== 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 <nomF_E>
 +  mode tcp
 +  bind <IP_publiqueHaProxy>:443
 +  default_backend <nomB_E>
 +
 +backend <nomB_E> 
 +  balance <modeRepartition>
 +  mode tcp
 +  server <nomServ1> <ip_serv1>:443
 +  server <nomServ2> <ip_serv2>:443
 +</code>
 +
 +=== Exemple ===
 +<code apache>
 +frontend proxypublic
 +  mode tcp
 +  bind 10.22.30.210:443
 +  default_backend fermeweb
 +
 +backend fermeweb 
 +  mode tcp
 +  balance roundrobin
 +  server web1 192.168.100.212:443
 +  server web2 192.168.100.215:443
 +</code>
 +
 +
 +
  
  
haproxy.1677787293.txt.gz · Dernière modification : 2023/03/02 20:01 de admin