Jak skonfigurować HAProxy jako zwrotny serwer proxy

Jak Skonfigurowac Haproxy Jako Zwrotny Serwer Proxy



Jeśli masz serwer WWW, możliwość przekazywania żądań klientów i odpowiedzi serwera pomaga w dystrybucji ruchu i zwiększa bezpieczeństwo. Odwrotny serwer proxy, taki jak HAProxy, po skonfigurowaniu działa jako pośrednik między aplikacją internetową a urządzeniami klienckimi. W ten sposób odbiera żądania klientów i przekazuje je do odpowiedniego serwera WWW, jednocześnie otrzymując odpowiedź serwera i przesyłając je do klientów. Konfigurowanie HAProxy po stronie serwera do działania jako odwrotne proxy jest prostym procesem. W tym poście szczegółowo opisano kroki, które należy podjąć.

Dlaczego warto używać zwrotnego serwera proxy?

Zanim omówimy kroki konfiguracji HAProxy jako odwrotnego proxy, szybko wyjaśnijmy, dlaczego odwrotne proxy działa na Twoją korzyść. Poniżej przedstawiono korzyści wynikające z używania HAProxy jako odwrotnego proxy:

  1. Równoważenie obciążenia - Twój serwer WWW może w pewnym momencie mieć wiele żądań klientów, które, jeśli nie zostaną prawidłowo obsłużone, mogą go przeciążyć, co powoduje nieoczekiwane przestoje. Jednak skonfigurowanie odwrotnego proxy gwarantuje, że ruch zostanie rozłożony na serwery zaplecza, aby żaden serwer nie został przeciążony żądaniami.
  2. Zapora sieciowa i bezpieczeństwo – Odwrotne proxy łączy urządzenia klienckie z serwerem WWW. Takie postępowanie zmniejsza ryzyko bezpośredniego narażenia naszych serwerów zaplecza na Internet. W ten sposób złośliwy ruch można łatwo odfiltrować i zablokować, zanim uszkodzi serwery.
  3. Lepsze buforowanie – Dzięki odwrotnemu proxy zauważysz ogólną poprawę wydajności, ponieważ czas ładowania zostanie skrócony dzięki buforowaniu zawartości statycznej. Poza tym osiągniesz lepsze doświadczenie użytkownika.
  4. Zakończenie SSL/TLS – Dzięki odwrotnemu proxy szyfrowanie i deszyfrowanie połączeń SSL/TLS staje się płynne, a serwery zaplecza nie będą musiały brać na siebie tego zadania, co zmniejsza ich obciążenie.

Jak skonfigurować HAProxy jako zwrotny serwer proxy

Po wyjaśnieniu, dlaczego odwrotne proxy, takie jak HAProxy, jest niezbędne, podamy kroki konfiguracyjne, które należy wykonać.







Krok 1: Zainstaluj HAProxy



Prawdopodobnie masz już zainstalowany HAProxy w swoim systemie. Jeśli tak, pomiń ten krok. Jednakże, jeśli ktoś jest w tym nowy, uruchom następującą komendę, aby zainstalować HAProxy:



$ sudo apt zainstaluj haproxy

W naszym przypadku mamy to już zainstalowane.





Krok 2: Edytuj plik konfiguracyjny HAProxy



HAProxy zawiera plik konfiguracyjny, do którego należy uzyskać dostęp i edytować go, aby skonfigurować go jako odwrotne proxy. Zacznij od otwarcia pliku konfiguracyjnego za pomocą edytora tekstu.

$ sudo nano /etc/haproxy/haproxy.cfg

Po otwarciu zwróć uwagę, że zawiera podstawowe konfiguracje sekcji domyślnej i globalnej. Musimy wówczas stworzyć jeszcze dwie sekcje: frontend i backend. Frontend definiuje interfejsy, które powinny odbierać żądania klientów, natomiast backend określa serwery, które będą obsługiwać ruch.

W tym przykładzie konfigurujemy frontend tak, aby akceptował żądania klientów z portów 80 i 81. Następnie tworzymy regułę dystrybuującą ruch w taki sposób, że połączenia z portu 80 są kierowane do określonego serwera, a te z portu 81 trafiają do innego serwer. Nasza sekcja frontendowa wygląda następująco:

Ponieważ utworzyliśmy dwa serwery backendu, backend2 i linux_backend, musimy utworzyć sekcje backendu dla obu serwerów. Dla każdego z nich określamy, jaki adres IP ma rozdzielać ruch na nasz „serwer1” i „serwer2”.

Po edycji pliku konfiguracyjnego zapisz go i zamknij plik. Należy pamiętać, że istnieje wiele sposobów konfiguracji HAProxy w zależności od potrzeb. W naszym przypadku tworzymy serwery internetowe przy użyciu określonego adresu IP w celu kierowania naszego ruchu. Zmień adresy IP, aby odpowiadały adresom serwerów internetowych i portowi, na którym chcesz słuchać.

Krok 3: Sprawdź ważność

W przypadku HAProxy dostępne jest polecenie umożliwiające sprawdzenie, czy plik konfiguracyjny jest prawidłowy. Uruchom następujące polecenie i zobacz, jakie otrzymasz dane wyjściowe:

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

Jeśli otrzymasz podobny wynik, potwierdzi to, że plik konfiguracyjny jest prawidłowy. W przeciwnym razie będzie to powodować błędy.

Krok 4: Przetestuj zwrotne proxy

Używając polecenia takiego jak „curl”, możesz wysłać ruch do swojego serwera internetowego i zobaczyć, jak zareaguje. W naszym przypadku używamy Python3 do tworzenia serwerów internetowych.

Uruchomienie polecenia „curl” potwierdza, że ​​nasz serwer WWW nasłuchuje określonego portu i że HAProxy rozdzielił ruch do określonego serwera w oparciu o nasz plik konfiguracyjny.

Możesz także uzyskać dostęp do swojego serwera internetowego za pomocą przeglądarki i sprawdzić, czy działa odwrotne proxy.

Ponieważ mamy dwa serwery WWW, których można używać w zależności od portu używanego przez urządzenia klienckie, połączmy inny serwer WWW z innym portem i zobaczmy, co się stanie.

Poniższe dane wyjściowe pokazują, że HAProxy wysłał nasz ruch do drugiego serwera zaplecza po wykryciu, że żądanie klienta zostało wysłane przez port 81, potwierdzając, że dystrybucja ruchu działa zgodnie z oczekiwaniami.

Oto jak skonfigurować HAProxy jako odwrotne proxy.

Wniosek

HAProxy to doskonały wybór jako odwrotne proxy dla Twojego serwera WWW. Konfiguracja jest prosta. Określ tylko, który port ma nasłuchiwać żądań klientów i jakich reguł używać do równoważenia obciążenia. Następnie dodaj serwery zaplecza, których chcesz używać, a odwrotne proxy będzie gotowe do działania. W tym poście opisano kroki, które należy wykonać, i zaprezentowano przykład, dzięki któremu będziesz mógł czuć się komfortowo z HAProxy.