So konfigurieren Sie HAProxy für WebSocket-Verbindungen

So Konfigurieren Sie Haproxy Fur Websocket Verbindungen



WebSocket-Anwendungen verfügen über eine Echtzeit- und bidirektionale Kommunikation zwischen dem Client und dem Server. Auch bei WebSocket-Verbindungen benötigen Sie eine Möglichkeit, den Datenverkehr zu verteilen, um eine Überlastung eines Servers zu vermeiden, die zu Ausfallzeiten und Nichtverfügbarkeit führen würde.

HAProxy ist ein Beispiel für einen kostenlosen und zuverlässigen Load Balancer, der auch als Reverse-Proxy fungiert. Sie können HAProxy für WebSocket-Verbindungen konfigurieren, um die Funktionen von WebSockets besser zu nutzen, insbesondere bei der Echtzeit-Datenübertragung, und gleichzeitig die Serverlast mit HAProxy zu minimieren. In diesem Beitrag werden alle erforderlichen Schritte zum Konfigurieren von HAProxy für WebSocket-Verbindungen vorgestellt.

Schritt-für-Schritt-Anleitung zur Konfiguration von HAProxy für WebSocket-Verbindungen

Bei WebSocket-Verbindungen ist die Server- und Client-Kommunikation langlebig. Es bleibt bestehen, bis der Server oder Client beschließt, es zu schließen. Daher stellt die Verwendung eines Load Balancers sicher, dass der Datenverkehr auf einen anderen Server verteilt werden kann, wenn dieser überlastet ist. Auf diese Weise können Client und Server eine unterbrechungsfreie und langlebige Verbindung mit geringer Latenz genießen.







1. Installieren Sie HAProxy

Der erste Schritt zur Konfiguration von HAProxy für WebSocket-Verbindungen besteht darin, sicherzustellen, dass HAProxy installiert ist. Wenn Sie es bereits installiert haben, überspringen Sie diesen Schritt. Andernfalls führen Sie den folgenden Befehl aus, um es zu installieren:



$ Sudo apt-get installieren haproxy



2. Bearbeiten Sie die HAProxy-Konfiguration

Um HAProxy für WebSocket-Verbindungen zu konfigurieren, müssen wir die HAProxy-Konfiguration bearbeiten, um die WebSocket-Verbindungen zu unterstützen. Wir müssen den Abschnitt „Standardeinstellungen“ ändern und die Abschnitte „Frontend“ und „Backend“ erstellen.





Öffnen Sie die HAProxy-Konfiguration mit einem Texteditor wie folgt:

$ Sudo Nano / usw / haproxy / haproxy.cfg

Ändern Sie es im Abschnitt „Standardeinstellungen“ wie in der folgenden Abbildung dargestellt. Zunächst geben wir an, dass wir mit HTTP-Verbindungen arbeiten und legen fest, wohin die Protokolldateien gesendet werden sollen. Als nächstes legen wir die Timeouts für verschiedene Aktivitäten fest. Der Timeout-Connect ist beispielsweise die maximale Zeit, die ein Verbindungsversuch zum Server dauern sollte. Wenn die maximale Zeit erreicht ist, gilt die Verbindung als fehlgeschlagen und kann erneut versucht werden.



Für diesen Fall legen wir das Verbindungs-Timeout auf 5000 Millisekunden fest. Sie können das Timeout so anpassen, wie Sie es für Ihren Fall am besten sehen. Passen Sie sie entsprechend Ihrer Anwendung an und merken Sie sich die Dauer der WebSocket-Sitzungen und die erwartete Langlebigkeit.

Als Nächstes müssen wir den Abschnitt „Frontend“ erstellen, in dem wir festlegen, welche Ports für die WebSocket-Verbindungen verwendet werden sollen und auf welchen Backend-Server verwiesen werden soll. Für diesen Fall geben wir Port 80 an und geben die URL an, um auf die Seite „Stats“ zuzugreifen und unseren HAProxy zu überwachen. Zuletzt definieren wir, auf welchen Backend-Abschnitt beim Lastausgleich verwiesen werden soll.

Im Bereich „Backend“ verteilen wir die Last per Round-Robin. Die „Option forward for“ gibt HAProxy an, beim Senden der Verbindungsanfrage einen „X-Forward-For“-Header einzuschließen, der die IP-Adresse des Clients enthält. Auf diese Weise erhält der Backend-Server die richtige Client-IP.

Die „Option http-server-close“ schränkt die Ressourcen ein, indem sie verhindert, dass ungenutzte Verbindungen die Serverressourcen beanspruchen. Obwohl die WebSocket-Verbindungen langlebig sind, müssen wir nach inaktiven, langlebigen Verbindungen suchen und diese schließen, um unnötige Ressourcenverschwendung zu vermeiden.

Fügen Sie abschließend die Backend-Server hinzu, die Sie zur Verteilung des Datenverkehrs verwenden möchten. Stellen Sie sicher, dass Sie die richtige IP-Adresse für die Server angeben und ersetzen Sie diese durch die im folgenden Bild:

Ihr HAProxy ist jetzt für WebSocket-Verbindungen konfiguriert. Speichern Sie die Änderungen und schließen Sie die Datei.

3. Testen Sie die Gültigkeit

Bevor wir HAProxy neu starten, können wir einen Schnellbefehl ausführen, um zu überprüfen, ob die Datei gültig ist und keinen Fehler aufweist. Führen Sie dazu den folgenden Befehl aus:

$ Sudo haproxy -C -F / usw / haproxy / haproxy.cfg

4. Starten Sie die WebSocket-Verbindung neu und testen Sie sie

Sobald die Datei gültig ist, starten Sie den HAProxy-Dienst neu.

Das ist es. Sie haben HAProxy für WebSocket-Verbindungen konfiguriert. Sie können die Verbindung testen, um sicherzustellen, dass der gesamte WebSocket-Verkehr korrekt weitergeleitet wird.

Abschluss

Die Konfiguration von HAProxy für WebSocket-Verbindungen ist eine gefragte Lösung, insbesondere von Webadministratoren. In diesem Beitrag wird der Prozess im Detail erläutert, die Schritte und ein Beispiel vorgestellt, um sicherzustellen, dass Sie ihn problemlos befolgen und in Ihrem Fall umsetzen können. Gehen Sie jeden Schritt durch und stellen Sie sicher, dass Sie das Konzept und den Prozess zu seiner Umsetzung verstehen.