GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie HAProxy Load Balancer auf Ubuntu 18.04 Bionic Beaver

In diesem Artikel haben wir die notwendigen Schritte zur Installation und Konfiguration von HAProxy Load Balancer auf Ubuntu 18.04 LTS erklärt. Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind. Alle Befehle in diesem Tutorial sollten als Nicht-Root-Benutzer ausgeführt werden.

HAProxy ist ein Open-Source-Linux-Tool, das Hochverfügbarkeits-Load-Balancing und Proxy-Dienste für TCP- und HTTP-basierte Netzwerkanwendungen bereitstellt. Aufgrund seiner einfachen Integration in bestehende Architekturen, seiner Eignung für stark frequentierte Websites, seiner extremen Zuverlässigkeit und seines Fokus auf Aufwärtskompatibilität wird es standardmäßig von den meisten Mainstream-Linux-Distributionen ausgeliefert.

Installieren Sie HAProxy auf Ubuntu

Schritt 1. Netzwerkdetails

Wir gehen der Einfachheit halber von folgenden IP-Adressen und Hostnamen für die Instanzen aus:

  • haproxy-server :öffentliche IP-Adresse 198.18.0.1
  • backend-server1 :private IP-Adresse 172.16.0.1 , öffentliche IP-Adresse 198.18.0.1
  • backend-server2 :private IP-Adresse 172.16.0.2 , öffentliche IP-Adresse 198.18.0.2

Schritt 2. Bevor Sie mit der Installation eines Pakets auf Ihrem Ubuntu-Server beginnen, empfehlen wir immer, sicherzustellen, dass alle Systempakete aktualisiert sind.

sudo apt update
sudo apt upgrade

Schritt 3. Installieren Sie HaProxy auf Ubuntu 18.04 LTS.

HaProxy ist im Ubuntu-Software-Repository verfügbar, sodass wir es mit dem Paketmanager installieren können, indem Sie den folgenden Befehl ausführen:

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

Schritt 4. Load-Balancing-Konfiguration mit HAProxy.

Bearbeiten Sie nun die Haproxy-Standardkonfigurationsdatei /etc/haproxy/haproxy.cfg und starten Sie die Konfiguration:

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

Fügen Sie also gegen Ende der Datei den folgenden Inhalt hinzu:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

Der bind-Parameter weist HaProxy an, Port 80 auf Verbindungen abzuhören. Am Ende des Textes haben wir als Anweisung, wo sich unsere Endpunkte befinden, unseren Website-Endpunkt angegeben. Wir können jetzt fortfahren und die Backend-Konfigurationsdetails wie folgt hinzufügen:

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

Wenn Sie möchten, können Sie jetzt Haproxy-Statistiken aktivieren, indem Sie die folgende Konfiguration in der HAProxy-Konfigurationsdatei hinzufügen:

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

Schritt 5. Endgültige HAProxy-Konfigurationsdatei.

Die endgültige Konfigurationsdatei könnte wie folgt aussehen:

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

Starten Sie dann den HaProxy-Server neu, um die Änderungen neu zu laden:

sudo service haproxy restart

Schritt 6. Testen der Konfiguration.

In diesem Stadium haben wir ein voll funktionsfähiges HAProxy-Setup. An jedem Webserver-Knoten habe ich eine index.html-Demoseite, die den Hostnamen des Servers zeigt, sodass wir leicht zwischen Server-Webseiten unterscheiden können.

Greifen Sie nun im Webbrowser auf Port 80 auf IP 198.18.0.1 (wie oben konfiguriert) zu und klicken Sie auf Refresh. Sie werden sehen, dass HAProxy Anfragen nacheinander an den Backend-Server sendet (gemäß Round-Robin-Algorithmus).

Das ist alles, was Sie tun müssen, um HAProxy Load auf Ubuntu 18.04 zu installieren. Ich hoffe, Sie finden diesen schnellen Tipp hilfreich. Wenn Sie Fragen oder Anregungen haben, können Sie unten einen Kommentar hinterlassen.


Ubuntu
  1. So installieren Sie Ubuntu 18.04 Bionic Beaver

  2. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Ubuntu 20.04

  3. So installieren Sie GlassFish auf Ubuntu 18.04 Bionic Beaver

  4. So installieren Sie Netbeans auf Ubuntu 18.04 Bionic Beaver

  5. So installieren Sie Slack unter Ubuntu 18.04 Bionic Beaver

So installieren Sie Geany unter Ubuntu 18.04 Bionic Beaver

So installieren Sie Skype unter Ubuntu 18.04 Bionic Beaver

So installieren Sie GIMP unter Ubuntu 18.04 Bionic Beaver

So installieren Sie PyCharm auf Ubuntu 18.04 Bionic Beaver

So installieren Sie Ruby unter Ubuntu 18.04 Bionic Beaver

So installieren Sie Percona auf Ubuntu 18.04 Bionic Beaver