Zum Fußzeileninhalt springen
VERWENDUNG VON IRONSECUREDOC

Haproxy Docker Compose (Funktionsweise für Entwickler)

Ein Load Balancer ist Teil einer wichtigen modernen IT-Infrastruktur, die darauf ausgelegt ist, den Netzwerkverkehr effizient auf mehrere Server oder Ressourcen zu verteilen. Dies verbessert die Skalierbarkeit und Leistung des Systems, indem verhindert wird, dass ein einzelner Server überlastet wird. Der Load Balancer, der sich zwischen den Clients und den Servern auf der Rückseite befindet, minimiert die Reaktionszeit, während er die verfügbaren Ressourcen nutzt.

Load Balancer führen diese grundlegenden Aufgaben aus, die Fehlertoleranz, Verkehrsverteilung und Sitzungspersistenz beinhalten. Ein Load Balancer kann ein primäres Softwareprogramm, ein physisches Produkt oder ein cloudbasierter Dienst sein, der von AWS oder Azure bereitgestellt wird. Einige der am häufigsten verwendeten Algorithmen zur Verkehrsverteilung sind Round Robin, Least Connections und IP Hash.

Was ist HAProxy Docker?

HAProxy Docker bezieht sich darauf, den HAProxy-Load-Balancer in einen Docker-Container zu platzieren. Die Kraft der Verkehrsmanagementfähigkeiten von HAProxy kann jetzt mit der Flexibilität und Portabilität von Docker kombiniert werden. HAProxy ist ein beliebter, weit verbreiteter, quelloffener Load Balancer für Webanwendungen und Umgebungen mit Mikrodiensten, der hohe Verfügbarkeit und Reverse-Proxying bietet. Die Vorteile, HAProxy in einem Docker-Container auszuführen, umfassen einfache Bereitstellung, Isolation, Skalierbarkeit und Plattformunabhängigkeit. HAProxy Docker kann den Verkehr effizient über mehrere Backend-Dienste verteilen, die Gesundheit der Container überwachen und das Routing dynamisch an die Verfügbarkeit der Container anpassen.

Es unterstützt Funktionen wie SSL/TLS-Abschluss, Sitzungsspeicherung und mehrere Lastverteilungsalgorithmen, darunter Round Robin und Least Connections. Dies macht HAProxy Docker zu einer ausgezeichneten Möglichkeit, containerisierten Verkehr zu verwalten, da es sich gut in Orchestrierungstools wie Kubernetes oder Docker Swarm integrieren lässt, um dynamische Skalierung und automatisierte Diensterkennung bereitzustellen. Dies stellt sicher, dass moderne Anwendungen über robustes, leistungsstarkes und sicheres Verkehrsmanagement verfügen, ohne dass es zu Dateiproblemen kommt.

Funktionen von HAProxy Docker

Lastverteilung

HAProxy zeichnet sich durch die Verteilung des Netzwerkverkehrs auf viele Backend-Server aus. Seine vielen Lastverteilungsalgorithmen umfassen Round Robin, Least Connections und IP Hash, sodass Kunden den Verkehrsfluss an die speziellen Anforderungen ihrer Anwendungen anpassen können. Dies ermöglicht es HAProxy, Verkehr sowohl auf Layer 4 (TCP) als auch auf Layer 7 (HTTP/HTTPS) unterstützten Architekturen zu akzeptieren, wodurch es von einfachen TCP-Routing-Anwendungen bis hin zu komplexen Anwendungs-Layer-Load-Balancern im Hochleistungsbereich liegt.

Hohe Verfügbarkeit

Das zentrale Merkmal, hohe Verfügbarkeit, bedeutet, den Dienst aufrechtzuerhalten und immer in Betrieb zu halten. HAProxy leitet den Verkehr von Servern weg, die aufgrund der Gesundheitszustände der Backend-Server als ungesund oder ausgefallen gelten. Failover verhindert übermäßige Ausfallzeiten in Fällen, in denen ein Server nicht aktiv ist oder unerwartet ausfällt.

SSL/TLS-Unterstützung

HAProxy unterstützt SSL/TLS vollständig und sorgt für sichere Kommunikation vom Client zu den Servern. Darüber hinaus kann HAProxy SSL/TLS-Verbindungen beenden, um die Verschlüsselungs- und Entschlüsselungsaufgaben von den Backend-Servern zu entlasten und deren Leistung zu verbessern. Ist eine End-to-End-Verschlüsselung erforderlich, kann HAProxy den verschlüsselten Verkehr an die dahinterliegenden Dienste weiterleiten.

Reverse Proxying

HAProxy ist einer der besten Reverse Proxys, um den gesamten Client-Anforderungsverkehr an die zugehörigen Dienste auf der Backend-Seite zu senden. Es unterstützt Funktionen wie das Ändern von Headern, Weiterleitungen von URLs oder sogar spezielles Routing basierend auf speziellen Benutzerbedingungen, die unter bestimmten Regeln festgelegt werden können. Daher kann HAProxy auch als einer der geeigneten Kandidaten für eine Multi-Service-Architektur zusammen mit Mikrodiensten betrachtet werden.

Sicherheitsverbesserung

HAProxy ist voll von Sicherheitsfunktionen wie Ratenbegrenzung, DDoS-Schutz und ACLs. All dies wird verwendet, um eingehenden Verkehr zu filtern, was bedeutet, dass böswillige Anfragen, die andernfalls Ihre Backend-Server erreichen könnten, blockiert werden und Ihre Anwendungen stabil bleiben.

Skalierbarkeit

HAProxy ist extrem skalierbar. Es kann problemlos Millionen gleichzeitiger Verbindungen unterstützen, ohne dass Verzögerungen im Zusammenhang mit der Nutzung entstehen, und ohne Skalierungsprobleme auftrit. Diese Umgebung unterstützt Container-Orchestrierungsumgebungen wie Kubernetes und Docker Swarm, wobei ihre containerisierten Arbeitslasten die Vorteile von dynamischer Skalierung und Diensterkennung bieten.

Protokollierung und Überwachung

HAProxy verfügt über eine feinkörnige Protokollierung, die dabei helfen kann, Flüsse zu verstehen, Probleme zu beheben und die Leistung zu analysieren. Es arbeitet nahtlos mit dem Monitoring-Tool von Prometheus, Grafana und Datadog zusammen, die unter anderem Echtzeitdaten zur Gesundheit der Server, zum Netzwerkverkehrsfluss und zur Ressourcennutzung darstellen.

HAProxy unterstützt einfache Flexibilität in der Konfiguration

HAProxy bietet eine sehr flexible und leistungsstarke Konfigurationsfähigkeit. Damit können Benutzer recht anspruchsvolle Routingregeln definieren, wie bedingtes Routing nach Headern oder Cookies. URL-Umschreibung und Sitzungsspeicherung werden unterstützt, sogar Multimandantenfähigkeit, wobei eine Instanz von HAProxy mehrere Domänen oder Anwendungen bedienen kann.

Installation von HAProxy mit Docker

Die Installation und Ausführung von HAProxy mit Docker ist ein recht einfacher Prozess. Im Folgenden sind die Schritte aufgeführt, die nacheinander durchgeführt werden.

Docker-Installation

Stellen Sie sicher, dass Docker auf Ihrem System installiert ist. Um die Installation zu überprüfen, können Sie den unten stehenden Befehl ausführen:

docker --version
docker --version
SHELL

Falls Docker nicht auf dem System installiert ist, besuchen Sie den Docker-Link hier, um es von der offiziellen Website herunterzuladen und zu installieren.

Ziehen Sie das HAProxy-Docker-Image

Ziehen Sie das offizielle HAProxy-Image von Docker Hub. Der folgende Befehl lädt die neueste stabile Version herunter:

docker pull haproxy:latest
docker pull haproxy:latest
SHELL

Erstellen Sie eine HAProxy-Konfigurationsdatei

HAProxy benötigt eine Konfigurationsdatei, die sein Verhalten definiert. Erstellen Sie eine Datei namens haproxy.cfg mit folgendem Inhalt:

global
    log stdout format raw local0
defaults
    log     global
    mode    http
    timeout connect 5s
    timeout client  50s
    timeout server  50s
frontend http_front
    bind *:80
    default_backend http_back
backend http_back
    server app1 host.docker.internal:32769 check

Diese HAProxy-Konfiguration definiert:

  • Frontend: Hört auf Port 80 und leitet den Verkehr an das Backend weiter.
  • Backend: Zeigt auf app1, das unter host.docker.internal:32769 gehostet wird.

HAProxy Docker Container ausführen

Führen Sie den HAProxy-Docker-Container aus, montieren Sie die Konfigurationsdatei und stellen Sie die notwendigen Ports bereit:

docker run -d --network haproxy --name haproxy-container -p 80:80 -v $(pwd)/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
docker run -d --network haproxy --name haproxy-container -p 80:80 -v $(pwd)/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
SHELL
  • -d: Fährt den Container im Hintergrundbetrieb.
  • --name haproxy-container: Benennt den Container.
  • -p 80:80: Ordnet Port 80 auf dem Host Port 80 im Container zu.
  • -v $(pwd)/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro: Montiert die lokale Konfigurationsdatei in den Container.

Zugang zu HAProxy

Öffnen Sie einen Webbrowser und navigieren Sie zu http://localhost:80 oder der IP-Adresse Ihres Servers, um das Verkehrs-Routing zu testen.

Was ist IronSecureDoc?

IronSecureDoc ist ein Dienstprogramm für Dokumentenmanagement und -sicherheit, das auf starke Verschlüsselung, erweiterte PDF-Manipulation und digitale Signierung setzt. Es bietet Unternehmen und Entwicklern Dokumentvertraulichkeit und -integrität mit reibungslosem Zugang und macht die Verarbeitung von PDF-Dokumenten einfacher, ohne direkte oder indirekte Abhängigkeiten.

Darüber hinaus ist IronPDF eine PDF-API, die das Erstellen eines PDFs aus jeder Datenquelle und das Hinzufügen oder Bearbeiten von Inhalten mit Parametern wie Text, Bildern und Metadaten erleichtert. Dies beinhaltet Funktionen wie das Zusammenführen mehrerer PDFs, das Aufteilen von Dokumenten und das Hinzufügen von Kommentaren, Hervorhebungen oder Wasserzeichen für Anmerkungen.

Es bietet Passwortschutz, AES-Verschlüsselung und zertifikatsbasierte Zugriffskontrollen, um alle Ihre sensiblen Informationen und Daten zu sperren. Darüber hinaus ermöglicht es die digitale Signierung zur Authentifizierung Ihrer Dokumente und zur Sicherstellung der Nichtabstreitbarkeit – ein sehr wichtiges Merkmal in den Bereichen Finanzen, Medizin und Recht. Seine Audit-Trail-Funktionalität ermöglicht die Überwachung aller Aktivitäten, die an den Dokumenten ausgeführt wurden, zur Einhaltung von Vorschriften und zur Verantwortlichkeit.

Installieren und starten Sie IronSecureDoc

Ziehen Sie das Docker-Image von IronSecureDoc mit dem folgenden Befehl im Befehlsfenster oder einem geöffneten Terminal-Fenster:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Führen Sie den IronSecureDoc-Container aus:

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

Dieser Befehl startet eine Containerinstanz von IronSecureDoc. Sie können jetzt auf IronSecureDoc auf Port http://localhost:8080/swagger/index.html zugreifen.

Integration von IronSecureDoc mit HAProxy

Bereiten Sie eine haproxy.cfg-Datei vor, um Ihre Frontend- und Backend-Konfigurationen zu definieren. Im Folgenden finden Sie ein einfaches Beispiel für eine Konfiguration:

global
    log stdout format raw local0
defaults
    log     global
    mode    http
    option  httplog
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms
frontend http_front
    bind *:4500
    acl body_has_data req.hdr_val(Content-Length) gt 0
    http-request set-method POST if METH_GET body_has_data
    use_backend ironsecuredoc if { path /ironsecuredoc } || { path_beg /ironsecuredoc/ }
    use_backend ironsecuredoc_ping if { path /ping } || { path_beg /ping/ }
    use_backend ironsecuredoc_encrypt if { path /encrypt } || { path_beg /encrypt/ }
backend ironsecuredoc
    balance roundrobin
    http-request set-path /swagger/index.html
    server ironsecuredoc_server host.docker.internal:8080 check
backend ironsecuredoc_encrypt
    balance roundrobin
    http-request set-path /v1/document-services/pdfs/encrypt
    server ironsecuredoc_server host.docker.internal:8080 check
backend ironsecuredoc_ping
    balance roundrobin
    http-request set-path /v1/document-services/ping
    server ironsecuredoc_server host.docker.internal:8080 check

Diese HAProxy-Konfiguration verarbeitet HTTP-Verkehr für mehrere IronSecureDoc-Dienste. Es definiert globale Rohprotokollausgaben und legt den Standard-HTTP-Modus mit detaillierter Protokollierung fest. Das Frontend hört auf Port 4500 und leitet Anfragen basierend auf dem Pfad weiter. Die acl body_has_data überprüft das Vorhandensein von Daten und konvertiert GET-Anfragen bei Bedarf in POST. Das Backend verwendet den Round Robin-Algorithmus zur Lastverteilung und stellt sicher, dass Anfragen entsprechend weitergeleitet werden, mit Integritätsprüfungen zur Sicherstellung der Serververfügbarkeit.

Um eine einfache Verschlüsselungsanfrage mit cURL zu senden:

curl -X 'POST' \
  'http://localhost:4500/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:4500/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

Diese Anfrage an die IronSecureDoc API wendet die Benutzerpasswortverschlüsselung auf ein PDF-Dokument an, und die Ausgabedatei wird sicher gesendet und heruntergeladen.

Abschluss

Die Integration von HAProxy mit der IronSecureDoc-Software stellt eine zuverlässige und skalierbare Lösung zur Verwaltung von Dokumentensicherheitsdiensten mit optimiertem Verkehrs-Routing und Lastverteilung sicher. HAProxy verteilt den Verkehr effizient über mehrere Instanzen von IronSecureDoc, um durch Integritätsprüfungen und benutzerdefinierte Routing-Regeln eine hohe Verfügbarkeit zu gewährleisten.

Diese Konfiguration ermöglicht eine flexible Behandlung komplexer Workflows wie Verschlüsselung und Gesundheitsüberwachung. HAProxy und IronSecureDoc ergänzen sich in einer containerisierten Umgebung, wodurch die Widerstandsfähigkeit und Leistung der Bereitstellung verbessert wird.

Mit der IronSecureDoc REST API können Entwickler eine sichere Dokumentenbearbeitung und effektives PDF-Management nahtlos in ihre Web-, Mobil- und Unternehmensanwendungen integrieren. Weitere Informationen über IronSecureDoc-Lizenzen finden Sie auf der Lizenzierungsseite. Um mehr über die Produkte von Iron Software zu erfahren, besuchen Sie die Bibliothekssuite-Seite.

Häufig gestellte Fragen

Wie kann ich HAProxy mit Docker Compose bereitstellen?

Um HAProxy mit Docker Compose bereitzustellen, müssen Sie eine docker-compose.yml-Datei erstellen, die den HAProxy-Dienst mit der erforderlichen Konfiguration spezifiziert. Diese Einrichtung ermöglicht es Ihnen, HAProxy neben anderen Diensten zu verwalten, um nahtlose Verkehrsverwaltung und hohe Verfügbarkeit sicherzustellen.

Was sind die Vorteile der Verwendung von HAProxy mit Docker für Microservices?

Bei der Verwendung von HAProxy mit Docker für Microservices profitieren Sie von dynamischem Skalieren, automatischer Dienstentdeckung und effizienter Verkehrsverteilung. Die Unterstützung von HAProxy für SSL/TLS-Termination und verschiedene Lastverteilungsalgorithmen verbessert die Sicherheit und Leistung in einer Microservices-Architektur.

Wie kann HAProxy für SSL/TLS-Termination in Docker konfiguriert werden?

HAProxy kann für SSL/TLS-Termination konfiguriert werden, indem die entsprechenden frontend - und backend -Konfigurationen in der HAProxy-Konfigurationsdatei eingerichtet werden. Dies entlastet Ihre Backend-Server von den Verschlüsselungsaufgaben und optimiert Leistung und Sicherheit.

Welche Rolle spielt HAProxy bei der Verbesserung der Sicherheit in einer containerisierten Umgebung?

HAProxy verbessert die Sicherheit in einer containerisierten Umgebung durch Funktionen wie DDoS-Schutz, Ratenbegrenzung und Zugriffskontrolllisten (ACLs). Diese Sicherheitsmaßnahmen verhindern, dass bösartiger Datenverkehr Ihre Backend-Dienste erreicht und gewährleisten eine sichere Anwendungsbereitstellung.

Wie können Entwickler Dokumentensicherheitsfunktionen in ihre Anwendungen integrieren, indem sie IronSecureDoc verwenden?

Entwickler können Dokumentensicherheitsfunktionen mit IronSecureDoc integrieren, indem sie dessen REST-API nutzen. Dies ermöglicht die nahtlose Implementierung von Dokumentenverschlüsselung, PDF-Manipulation und digitalem Signieren innerhalb von Anwendungen, was das Dokumentenmanagement und die Sicherheit verbessert.

Wie erleichtert HAProxy die Integration mit Orchestrierungswerkzeugen wie Kubernetes?

HAProxy erleichtert die Integration mit Orchestrierungswerkzeugen wie Kubernetes, indem es dynamisches Skalieren und automatische Dienstentdeckung unterstützt. Dies stellt in einer containerisierten Bereitstellung eine effiziente Verkehrsverwaltung und hohe Verfügbarkeit sicher und optimiert die Ressourcennutzung und Systemresilienz.

Welche Schlüsselfunktionen von HAProxy unterstützen hohe Verfügbarkeit?

HAProxy unterstützt hohe Verfügbarkeit durch Funktionen wie Gesundheitschecks, Failover-Mechanismen und Sitzungspersistenz. Diese Fähigkeiten stellen sicher, dass der Datenverkehr von ausgefallenen Servern umgeleitet wird, was die Ausfallzeit minimiert und den kontinuierlichen Betrieb des Dienstes aufrechterhält.

Wie erfolgt der Prozess der Integration von HAProxy mit IronSecureDoc für das Dokumentenmanagement?

Die Integration von HAProxy mit IronSecureDoc für das Dokumentenmanagement erfordert die Konfiguration von HAProxy zur effizienten Verkehrsleitung zu den IronSecureDoc-Diensten. Diese Einrichtung verbessert die Dokumentsicherheit durch optimierte Verkehrsleitung und Lastverteilung in einer containerisierten Umgebung.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen