Jak skonfigurować HAProxy dla połączeń WebSocket

Jak Skonfigurowac Haproxy Dla Polaczen Websocket



Aplikacje WebSocket umożliwiają dwukierunkową komunikację w czasie rzeczywistym pomiędzy klientem a serwerem. Nawet w przypadku połączeń WebSocket nadal potrzebny jest sposób na dystrybucję ruchu, aby uniknąć przeciążenia serwera, co mogłoby prowadzić do przestojów i niedostępności.

HAProxy to przykład darmowego i niezawodnego modułu równoważenia obciążenia, który działa również jako odwrotne proxy. Możesz skonfigurować HAProxy dla połączeń WebSocket, aby lepiej wykorzystywać funkcje WebSockets, zwłaszcza przy przesyłaniu danych w czasie rzeczywistym, jednocześnie minimalizując obciążenie serwera za pomocą HAProxy. W tym poście przedstawiono wszystkie kroki wymagane do skonfigurowania HAProxy dla połączeń WebSocket.

Przewodnik krok po kroku dotyczący konfigurowania HAProxy dla połączeń WebSocket

Dzięki połączeniom WebSocket komunikacja serwera i klienta jest długotrwała. Utrzymuje się, dopóki serwer lub klient nie zdecyduje się go zamknąć. W związku z tym posiadanie sposobu pracy z modułem równoważenia obciążenia zapewnia, że ​​ruch może zostać rozdzielony na inny serwer, jeśli serwer jest przeciążony. W ten sposób klient i serwer mogą cieszyć się nieprzerwanym i długotrwałym połączeniem przy niskim opóźnieniu.







1. Zainstaluj HAProxy

Pierwszym krokiem w celu skonfigurowania usługi HAProxy dla połączeń WebSocket jest upewnienie się, że masz zainstalowaną usługę HAProxy. Jeśli masz już zainstalowany, pomiń ten krok. W przeciwnym razie uruchom następującą komendę, aby ją zainstalować:



$ sudo apt-get zainstaluj haproksy



2. Edytuj konfigurację HAProxy

Aby skonfigurować HAProxy dla połączeń WebSocket, musimy edytować konfigurację HAProxy tak, aby obsługiwała połączenia WebSocket. Musimy zmodyfikować sekcję „Domyślne” i utworzyć sekcje „Frontend” i „Backend”.





Otwórz konfigurację HAProxy za pomocą edytora tekstu w następujący sposób:

$ sudo nano / itp / haproksy / haproxy.cfg

W sekcji „Domyślne” zmodyfikuj ją zgodnie z poniższym obrazkiem. Najpierw określamy, że pracujemy z połączeniami HTTP i określamy, gdzie wysyłać pliki dziennika. Następnie ustalamy limity czasu dla różnych czynności. Na przykład limit czasu połączenia to maksymalny czas, jaki powinna zająć próba połączenia z serwerem. Po osiągnięciu maksymalnego czasu połączenie zostaje uznane za nieudane i można je ponowić.



W tym przypadku ustawiliśmy limit czasu połączenia na 5000 milisekund. Możesz dostosować limit czasu tak, jak widzisz je najlepiej w swoim przypadku. Dostosuj je w zależności od aplikacji i zapamiętaj czas trwania sesji WebSocket oraz oczekiwaną trwałość.

Następnie musimy utworzyć sekcję „Frontend”, w której określamy, jakie porty mają być używane dla połączeń WebSocket i do jakiego serwera zaplecza się odwoływać. W tym przypadku określamy port 80 i podajemy adres URL umożliwiający dostęp do strony „Statystyki” w celu monitorowania naszego HAProxy. Na koniec definiujemy, do której sekcji backendu należy się odwołać przy równoważeniu obciążenia.

W sekcji „Backend” rozdzielamy obciążenie metodą okrężną. Opcja „forward for” określa, że ​​HAProxy ma dołączyć nagłówek „X-Forward-For”, który zawiera adres IP klienta podczas wysyłania żądania połączenia. W ten sposób serwer zaplecza otrzyma prawidłowy adres IP klienta.

„Opcja http-server-close” ogranicza zasoby, eliminując wszelkie bezczynne połączenia, które zajmują zasoby serwera. Chociaż połączenia WebSocket są długotrwałe, musimy sprawdzić, czy nie ma wolnych, długotrwałych połączeń i zamknąć je, aby uniknąć niepotrzebnego marnowania zasobów.

Na koniec dodaj serwery zaplecza, których będziesz używać do dystrybucji ruchu. Upewnij się, że podałeś poprawny adres IP serwerów i zamień te z poniższego obrazu:

Twój HAProxy jest teraz skonfigurowany do połączeń WebSocket. Zapisz zmiany i zamknij plik.

3. Sprawdź ważność

Zanim ponownie uruchomimy HAProxy, możemy uruchomić szybkie polecenie, aby sprawdzić, czy plik jest prawidłowy i nie zawiera błędów. W tym celu uruchom następujące polecenie:

$ sudo haproksy -C -F / itp / haproksy / haproxy.cfg

4. Uruchom ponownie i przetestuj połączenie WebSocket

Gdy plik będzie prawidłowy, uruchom ponownie usługę HAProxy.

Otóż ​​to. Skonfigurowano HAProxy dla połączeń WebSocket. Możesz przetestować połączenie, aby upewnić się, że cały ruch protokołu WebSocket jest prawidłowo przekazywany.

Wniosek

Konfiguracja HAProxy dla połączeń WebSocket jest rozwiązaniem poszukiwanym, zwłaszcza przez administratorów sieci. W tym poście szczegółowo omówiono proces, podając kroki i przykład, dzięki którym będziesz mógł wygodnie postępować zgodnie z instrukcjami i wdrożyć to samo w swoim przypadku. Przejdź przez każdy krok i upewnij się, że rozumiesz koncepcję i proces jej wdrożenia.