Configurez Kodi IPTV m3u en moins de 2 minutes et regardez des chaînes illimitées

HAProxy

Équilibrage de charge du serveur Web avec HAProxy sur Ubuntu

Vues : 8

Qu’est-ce que HAProxy?

HAProxy (High Availability Proxy) est un équilibreur de charge open source qui peut équilibrer la charge de n’importe quel service TCP. HAProxy est une solution gratuite, très rapide et fiable qui offre un équilibrage de charge , une haute disponibilité et un proxy pour les applications TCP et HTTP.Il est particulièrement bien adapté aux sites Web à très fort trafic et alimente de nombreux sites parmi les plus visités au monde.

Depuis son existence, il est devenu de facto l’équilibreur de charge open source standard. Bien qu’il ne se fasse pas de publicité, mais qu’il soit largement utilisé. Vous trouverez ci-dessous un schéma de base de la configuration de la configuration:

HAProxy

Installation de HAProxy

J’utilise Ubuntu 18.04 et je l’installe en:

apt-get install haproxy

Vous pouvez vérifier la version en:

haproxy -v

Nous devons activer HAProxy pour être lancé par le script d’initialisation / etc / default / haproxy . Définissez l’ option ENABLED sur 1 comme suit :

ENABLED=1

Pour vérifier si cette modification est effectuée correctement, exécutez le script d’initialisation de HAProxy sans aucun paramètre. Vous devriez voir ce qui suit:

$ service haproxy <press_tab_key>
 reload   restart  start    status   stop

HAProxy est maintenant installé. Créons maintenant une configuration dans laquelle nous avons 2 (deux) instances de serveur Web Apache et 1 (une) instance HAProxy. Voici les informations de configuration:

Nous allons utiliser trois systèmes, générés virtuellement via VirtualBox:

Instance 1 – Load Balancer

Hostname: haproxy
OS: Ubuntu
Private IP: 192.168.205.15

Instance 2 – Web Server 1

Hostname: webser01
OS: Ubuntu with LAMP
Private IP: 192.168.205.16

Instance 2 – Web Server 2

Nom d’hôte: webserver02
OS: Ubuntu avec LAMP
IP privée: 192.168.205.17

Configurer HAProxy

Sauvegardez le fichier d’origine en le renommant:

mv /etc/haproxy/haproxy.cfg{,.original}

Nous allons créer notre propre fichier haproxy.cfg . À l’aide de votre éditeur de texte préféré, créez le fichier /etc/haproxy/haproxy.cfg comme suit :

global
        log / dev / log local0
        log 127.0.0.1 avis local1
        maxconn 4096
        haproxy utilisateur
        haproxy de groupe
        démon

valeurs par défaut
        journal global
        mode http
        option httplog
        option dontlognull
        tentatives 3
        option redispatch
        maxconn 2000
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000

écoute webfarm 0.0.0.0:80
    mode http
    activer les statistiques
    stats uri / haproxy? stats
    équilibre roundrobin
    option httpclose
    option avant pour
    serveur webserver01 192.168.205.16:80 chèque
    serveur webserver02 192.168.205.17:80 chèque

Explication:

global
        log / dev / log local0
        log 127.0.0.1 avis local1
        maxconn 4096
        haproxy utilisateur
        haproxy de groupe
        démon

La directive log mentionne un serveur syslog auquel les messages du journal seront envoyés.

La directive maxconn spécifie le nombre de connexions simultanées sur le front-end. La valeur par défaut est 2000 et doit être réglée en fonction de la configuration de votre système.

Les directives utilisateur et groupe modifient le processus HAProxy en l’utilisateur / groupe spécifié. Ceux-ci ne devraient pas être modifiés.

valeurs par défaut
        journal global
        mode http
        option httplog
        option dontlognull
        tentatives 3
        option redispatch
        maxconn 2000
        contimeout 5000
        clitimeout 50000
        srvtimeout 50000

La section ci-dessus a les valeurs par défaut. L’option redispatch permet la redistribution de session en cas d’échec de connexion. Ainsi, la persistance de session est remplacée si une instance de serveur Web tombe en panne.

La directive retries définit le nombre de tentatives à effectuer sur une instance de serveur Web après un échec de connexion.

Les valeurs à modifier sont les différentes directives de timeout . L’ option contimeout spécifie la durée maximale d’attente pour qu’une tentative de connexion à une instance de serveur Web réussisse.

Le clitimeout et le srvtimeouts’appliquent lorsque le client ou le serveur doit accuser réception ou envoyer des données pendant le processus TCP. HAProxy recommande de définir les délais d’expiration du client et du serveur sur la même valeur.

écoute webfarm 0.0.0.0:80
    mode http
    activer les statistiques
    stats uri / haproxy? stats
    équilibre roundrobin
    option httpclose
    option avant pour
    serveur webserver01 192.168.205.16:80 chèque
    serveur webserver02 192.168.205.17:80 chèque

Le bloc ci-dessus contient la configuration du frontend et du backend. Nous configurons HAProxy pour écouter sur le port 80 pour webfarm qui est juste un nom pour identifier une application.

Les directives stats activent la page des statistiques de connexion. Cette page peut être consultée avec l’URL mentionnée dans stats uri donc dans ce cas, c’est http://192.168.205.15/haproxy?stats  une démo de cette page peut être consultée ici .

La directive balance spécifie l’algorithme d’équilibrage de charge à utiliser. Les options d’algorithme disponibles sont:

  • Tournoi à la ronde (roundrobin),
  • Round Robin statique (static-rr),
  • Moins de connexions (moins de connexion),
  • Source (source),
  • URI (uri) et
  • Paramètre URL (url_param).

Des informations sur chaque algorithme peuvent être obtenues à partir de la documentation officielle .

La directive serveur déclare un serveur backend, la syntaxe est:

serveur <nom_serveur> <adresse_serveur> [: port] [param *]

Le nom que nous mentionnons ici apparaîtra dans les journaux et les alertes. Il y a d’ autres paramètres pris en charge par cette directive et nous utiliserons la vérification paramètre dans cet article. L’ option check active les vérifications de l’état de l’instance de serveur Web, sinon, l’instance de serveur Web est toujours considérée comme disponible.

Une fois la configuration terminée, démarrez le service HAProxy:

sudo service haproxy start

Test de l’équilibrage de charge et du basculement

Nous ajouterons le nom du serveur dans le fichier index.html par défaut situé par défaut dans /var/www/index.html

Sur l’instance 2 – Web Server 1 (webserver01 avec IP-192.168.205.16), ajoutez la ligne ci-dessous comme suit:

sudo sh -c "echo \<h1\>Hostname: webserver01 \(192.168.205.16\)\<\/h1\> >> /var/www/index.html"

Sur l’instance 3 – Web Server 2 (webserver02 avec IP-192.168.205.17), ajoutez la ligne ci-dessous comme suit:

sudo sh -c "echo \<h1\>Hostname: webserver02 \(192.168.205.17\)\<\/h1\> >> /var/www/index.html"

Ouvrez maintenant le navigateur Web sur la machine locale et parcourez l’ adresse IP haproxy, c’est-à-dire http://192.168.205.15

Chaque fois que vous actualisez l’onglet, vous verrez que la charge est distribuée sur chaque serveur Web.

Vous pouvez également vérifier les statistiques haproxy en visitant http://192.168.205.15/haproxy?stats

Vous pouvez faire plus avec cette configuration. Certaines idées incluent:

  • mettre un ou les deux serveurs Web hors ligne pour tester ce qui se passe lorsque vous accédez à HAProxy
  • configurer HAProxy pour servir une page de maintenance personnalisée
  • configurer l’interface Web afin de pouvoir surveiller visuellement les statistiques HAProxy
  • changer l’ordonnanceur en quelque chose d’autre que le round robin
  • configurer la hiérarchisation / les pondérations pour des serveurs particuliers

C’est tout!

Sabrina

Sabrina

Développeur informatique, (All-PHP's, JAVA, PERL, C, C++, Visual-Basic, Pascal, SPSS, SQL). Administrateur de réseaux informatiques, (Debian, Ubuntu) (Proxmox, Cpanel, Webmin, DNS), et Webmaster (Apache) ( Wordpress, PrestaShop, WooCommerce, Webmail Serveur et Client) 1990 -> 2017, Retraité depuis 2018... Contact: webmaster@milbako.com

Voir tous les articles de Sabrina →

Laisser un commentaire

Traduire