GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer HAProxy Load Balancer sur Ubuntu 18.04 Bionic Beaver

Dans cet article, nous aurons expliqué les étapes nécessaires pour installer et configurer HAProxy Load Balancer sur Ubuntu 18.04 LTS. Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec des privilèges sudo. Toutes les commandes de ce didacticiel doivent être exécutées en tant qu'utilisateur non root.

HAProxy est un outil Linux open source qui fournit des services d'équilibrage de charge et de proxy haute disponibilité pour les applications réseau TCP et HTTP. En raison de son intégration facile dans les architectures existantes, de son adéquation aux sites Web à fort trafic, de sa fiabilité extrême et de l'accent mis sur la compatibilité ascendante, il est livré par défaut par la plupart des distributions Linux courantes.

Installer HAProxy sur Ubuntu

Étape 1. Détails du réseau

Par souci de simplicité, nous supposerons les adresses IP et les noms d'hôte suivants pour les instances :

  • haproxy-server :adresse IP publique 198.18.0.1
  • backend-server1 :adresse IP privée 172.16.0.1 , adresse IP publique 198.18.0.1
  • backend-server2 :adresse IP privée 172.16.0.2 , adresse IP publique 198.18.0.2

Étape 2. Tout d'abord, avant de commencer à installer un package sur votre serveur Ubuntu, nous vous recommandons de toujours vous assurer que tous les packages système sont mis à jour.

sudo apt update
sudo apt upgrade

Étape 3. Installez HaProxy sur Ubuntu 18.04 LTS.

HaProxy est disponible sur le référentiel de logiciels Ubuntu, nous pouvons donc l'installer à l'aide du gestionnaire de packages en exécutant la commande ci-dessous :

sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy

Étape 4. Configuration de l'équilibrage de charge avec HAProxy.

Modifiez maintenant le fichier de configuration par défaut d'haproxy /etc/haproxy/haproxy.cfg et démarrez la configuration :

sudo nano /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256::RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  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

Alors vers la fin du fichier, ajoutez le contenu ci-dessous :

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

Le paramètre bind indique à HaProxy d'écouter le port 80 pour les connexions. À la fin du texte, nous avons spécifié ourwebsiteendpoint comme directive où se trouvent nos points de terminaison. Nous pouvons maintenant continuer et ajouter les détails de configuration du backend comme suit :

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

Maintenant, si vous le souhaitez, vous pouvez activer les statistiques Haproxy en ajoutant la configuration suivante dans le fichier de configuration HAProxy :

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Étape 5. Fichier de configuration HAProxy final.

Le fichier de configuration final peut ressembler à ceci :

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM$
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  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

frontend ourwebsitefrontend
        bind *:80
        mode http
        default_backend ourwebsiteendpoint

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Ensuite, redémarrez le serveur HaProxy pour recharger les modifications :

sudo service haproxy restart

Étape 6. Test de la configuration.

À ce stade, nous avons une configuration HAProxy entièrement fonctionnelle. À chaque nœud de serveur Web, j'ai une page de démonstration index.html indiquant le nom d'hôte des serveurs. Nous pouvons donc facilement différencier les pages Web des serveurs.

Accédez maintenant au port 80 sur l'IP 198.18.0.1 (comme configuré ci-dessus) dans le navigateur Web et appuyez sur Actualiser. Vous verrez que HAProxy envoie les requêtes au serveur backend une par une (selon l'algorithme round robin).

C'est tout ce que vous avez à faire pour installer HAProxy Load sur Ubuntu 18.04. J'espère que vous trouverez cette astuce rapide utile. Si vous avez des questions ou des suggestions, n'hésitez pas à laisser un commentaire ci-dessous.


Ubuntu
  1. Comment installer Ubuntu 18.04 Bionic Beaver

  2. Comment installer et configurer l'équilibreur de charge HAProxy sur Ubuntu 20.04

  3. Comment installer GlassFish sur Ubuntu 18.04 Bionic Beaver

  4. Comment installer Netbeans sur Ubuntu 18.04 Bionic Beaver

  5. Comment installer Slack sur Ubuntu 18.04 Bionic Beaver

Comment installer Geany sur Ubuntu 18.04 Bionic Beaver

Comment installer Skype sur Ubuntu 18.04 Bionic Beaver

Comment installer GIMP sur Ubuntu 18.04 Bionic Beaver

Comment installer PyCharm sur Ubuntu 18.04 Bionic Beaver

Comment installer Ruby sur Ubuntu 18.04 Bionic Beaver

Comment installer Percona sur Ubuntu 18.04 Bionic Beaver