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

So richten Sie HAProxy unter CentOS 8 ein

HAProxy steht für High Availability Proxy. In C geschrieben, ist es eine kostenlose und Open-Source-TCP/HTTP-Load-Balancer- und Proxying-Lösung für TCP- und HTTP-basierte Anwendungen. HAProxy wird verwendet, um die Leistung einer Serverumgebung zu verbessern, indem die Arbeitslast auf mehrere Server verteilt wird.

HAProxy ermöglicht es einer Anwendung, im Falle eines Ausfalls automatisch neu zu starten oder die Arbeit auf einen anderen Server umzuleiten. Dieser leistungsstarke, zuverlässige und sichere Load Balancer ist der am weitesten verbreitete und wurde speziell für Websites mit sehr hohem Datenverkehr entwickelt.

In diesem Tutorial zeigen wir Ihnen, wie Sie mit HAProxy unter CentOS 8 einen Hochverfügbarkeits-Load-Balancer einrichten.

Voraussetzungen

  • Drei frische CentOS 8-VPS auf der Atlantic.Net Cloud-Plattform
  • Ein auf jedem VPS konfiguriertes Root-Passwort

Für dieses Tutorial verwenden wir das folgende Setup:

HAProxy-Server: – Hostname:Haproxy-IP:192.168.0.10

Webserver 1:- Hostname:web1 IP:192.168.0.11

Webserver 2:- Hostname:web2 IP:192.168.0.12

Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

dnf update -y

Schritt 2 – Nginx installieren und konfigurieren

Hinweis:Führen Sie diesen Schritt auf WebServer 1 und WebServer2 aus

Zuerst müssen Sie den Nginx-Webserver auf den Instanzen web1 und web2 installieren.

Sie können Nginx installieren, indem Sie den folgenden Befehl ausführen:

dnf install nginx -y

Starten Sie nach der Installation von Nginx den Nginx-Dienst und aktivieren Sie ihn so, dass er beim Booten auf beiden Instanzen gestartet wird:

systemctl start nginx
systemctl enable nginx

Ändern Sie als Nächstes die index.html Datei auf jeder Instanz.

Ändern Sie index.html Datei auf web1 Instanz mit dem folgenden Befehl:

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

Ändern Sie index.html Datei auf web2 Instanz mit dem folgenden Befehl:

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Schritt 3 – HAProxy installieren und konfigurieren

Hinweis:Führen Sie diesen Schritt auf HAProxy Server aus

Installieren Sie zuerst HAProxy auf der Haproxy-Serverinstanz mit dem folgenden Befehl:

dnf install haproxy -y

Sichern Sie nach Abschluss der Installation die Haproxy-Standardkonfigurationsdatei:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

Die Konfigurationsdatei ist in vier Hauptabschnitte unterteilt.

  1. globale Einstellungen: Wird verwendet, um prozessweite Parameter einzustellen.
  2. Standard: Wird verwendet, um Standardparameter für alle anderen Abschnitte festzulegen.
  3. Frontend: Wird verwendet, um zu definieren, wie auf HAProxy extern zugegriffen wird, um den Zugriff auf das Backend zu ermöglichen.
  4. Backend: Wird verwendet, um eine Reihe von Servern zu definieren, mit denen sich der Proxy verbindet, um eingehende Verbindungen weiterzuleiten.

Erstellen Sie als Nächstes eine neue Haproxy-Konfigurationsdatei mit dem folgenden Befehl:

nano /etc/haproxy/haproxy.cfg

Fügen Sie die folgenden Zeilen hinzu, die Ihrer Infrastruktur entsprechen:

#———————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

# Statistik-Unix-Socket einschalten

stats socket /var/lib/haproxy/stats

# Systemweite Krypto-Richtlinien nutzen

ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM

#———————————————————————

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

#———————————————————————

# Haupt-Frontend, das an die Backends weiterleitet

#———————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#———————————————————————

# Round-Robin-Ausgleich zwischen den verschiedenen Backends

#———————————————————————

Backend-Webserver # Geben Sie einen Namen an, um eine Anwendung zu identifizieren

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

Hinweis:Stellen Sie sicher, dass Sie die obige IP-Adresse mit der IP-Adresse ergänzen, die für Ihre Serverkonfiguration relevant ist

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann die Haproxy-Konfigurationsdatei mit dem folgenden Befehl auf Fehler:

haproxy -c -f /etc/haproxy/haproxy.cfg

Sie sollten die folgende Ausgabe erhalten:

Configuration file is valid

Starten Sie schließlich den Haproxy-Dienst und ermöglichen Sie ihm, beim Booten mit dem folgenden Befehl zu starten:

systemctl start haproxy
systemctl enable haproxy

Sie können Haproxy auch mit dem folgenden Befehl verifizieren:

systemctl status haproxy

Sie sollten die folgende Ausgabe erhalten:

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

Schritt 4 – HAProxy-Protokollierung konfigurieren

Mit der HAProxy-Protokollierung können Sie Statistiken zu jeder Verbindung zu Ihren Backend-Webservern anzeigen.

Sie können rsyslog konfigurieren, indem Sie die Datei /etc/rsyslog.conf:

bearbeiten
nano /etc/rsyslog.conf

Entkommentieren Sie die folgende Zeile:

module(load="imudp")
input(type="imudp" port="514")

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Als Nächstes müssen Sie einen rsyslog-Server konfigurieren, um HAProxy-Protokollmeldungen zu empfangen und zu verarbeiten.

Erstellen Sie dazu eine neue Konfigurationsdatei haproxy.conf:

nano /etc/rsyslog.d/haproxy.conf

Fügen Sie die folgenden Zeilen hinzu:

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den rsyslog-Dienst neu und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:

systemctl restart rsyslog
systemctl enable rsyslog

Schritt 5 – HAProxy Load Balancing testen

An diesem Punkt ist HAProxy installiert und konfiguriert. Es ist an der Zeit zu testen, ob das Load-Balancing funktioniert oder nicht.

Öffnen Sie Ihren Webbrowser und geben Sie Ihre HAProxy-IP http://192.168.0.10 ein. Sie sollten den Inhalt Ihres ersten Nginx-Webservers auf dem folgenden Bildschirm sehen:

Aktualisieren Sie als Nächstes die Webseite. Sie sollten den Inhalt Ihres zweiten Nginx-Webservers auf dem folgenden Bildschirm sehen:

Sie können den Status von Haproxy über die URL http://192.168.0.10/haproxy?stats anzeigen. Auf dem folgenden Bildschirm sollten Sie den Zustand Ihrer Server, aktuelle Anforderungsraten, Antwortzeiten und andere Messwerte sehen:

Schlussfolgerung

In der obigen Anleitung haben wir gelernt, wie man einen Hochverfügbarkeits-Load-Balancer mit HAProxy auf CentOS 8 einrichtet. Sie können jetzt ganz einfach Load-Balancing entwerfen und konfigurieren, um es an Ihre IT-Infrastruktur und die Anforderungen Ihrer Anwendung anzupassen; Probieren Sie es auf VPS-Hosting von Atlantic.Net aus.


Linux
  1. So richten Sie einen SFTP-Server unter CentOS ein

  2. So richten Sie HAProxy in Ubuntu 16.04 ein

  3. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  4. So richten Sie den NFS-Server unter CentOS 7 / RHEL 7 ein

  5. So richten Sie die MySQL-Replikation unter CentOS ein

So richten Sie einen zentralisierten SysLog-Server unter CentOS 8 / RHEL 8 ein

So installieren Sie HAProxy unter CentOS 7

So installieren Sie HAProxy unter CentOS 8

So richten Sie HAProxy als Load Balancer für Nginx unter CentOS 8 ein

So richten Sie HAProxy als Load Balancer für Nginx in CentOS 7 ein

Anleitung zum erstmaligen Einrichten des CentOS 7-Servers