Hoe HAProxy te configureren als een Reverse Proxy

Hoe Haproxy Te Configureren Als Een Reverse Proxy



Als u een webserver heeft, helpt het hebben van een manier om de clientverzoeken en de reactie van de server door te sturen bij het distribueren van het verkeer en verbetert het de veiligheid. Een reverse proxy, zoals HAProxy, fungeert indien geconfigureerd als tussenpersoon tussen uw webapplicatie en clientapparaten. Op die manier ontvangt het de clientverzoeken en stuurt deze door naar de juiste webserver, terwijl het de reactie van de server ontvangt en deze naar de clients verzendt. Het configureren van HAProxy aan uw serverzijde om als uw reverse proxy te fungeren, is een eenvoudig proces. In dit bericht worden de stappen beschreven die u moet nemen.

Waarom een ​​omgekeerde proxy gebruiken?

Voordat we de stappen bespreken om HAProxy als een reverse proxy te configureren, willen we eerst even benadrukken waarom een ​​reverse proxy in uw voordeel werkt. Hieronder volgen de voordelen die u krijgt als u HAProxy als reverse proxy gebruikt:

  1. Load-balancering – Uw webserver kan op een gegeven moment last hebben van veel clientverzoeken die, als ze niet goed worden afgehandeld, deze kunnen overbelasten, wat een onverwachte downtime veroorzaakt. Het configureren van een reverse proxy zorgt er echter voor dat het verkeer wordt verdeeld over de backend-servers om ervoor te zorgen dat geen enkele server overbelast raakt met verzoeken.
  2. Firewall en beveiliging – De reverse proxy verbindt de clientapparaten met de webserver. Als u dit doet, vermindert u het risico dat onze backend-servers rechtstreeks aan internet worden blootgesteld. Op die manier kan kwaadaardig verkeer eenvoudig worden gefilterd en geblokkeerd voordat het de servers beschadigt.
  3. Betere caching – Met een reverse proxy zult u de algehele prestatieverbetering merken, omdat de laadtijd wordt verkort door de statische inhoud in de cache op te slaan. Bovendien bereik je een betere gebruikerservaring.
  4. SSL/TLS-beëindiging – Met een reverse proxy wordt het coderen en decoderen van de SSL/TLS-verbindingen naadloos en hoeven uw backend-servers deze taak niet op zich te nemen, waardoor hun belasting wordt verminderd.

Hoe HAProxy te configureren als een Reverse Proxy

Nadat we hebben uitgelegd waarom een ​​reverse proxy zoals HAProxy essentieel is, laten we de te volgen configuratiestappen volgen.







Stap 1: Installeer HAProxy



Waarschijnlijk heeft u HAProxy al op uw systeem geïnstalleerd. Als dit het geval is, slaat u deze stap over. Voor iemand die hier nog niet bekend mee is, voert u echter de volgende opdracht uit om HAProxy te installeren:



$ sudo apt install haproxy

Wij hebben het al in ons geval geïnstalleerd.





Stap 2: Bewerk het HAProxy-configuratiebestand



HAProxy heeft een configuratiebestand dat u moet openen en bewerken om te configureren als uw omgekeerde proxy. Begin met het openen van het configuratiebestand met een teksteditor.

$ sudo nano /etc/haproxy/haproxy.cfg

Zodra het is geopend, moet u er rekening mee houden dat het basisconfiguraties heeft voor de standaard- en algemene secties. We moeten dan nog twee secties maken: frontend en backend. De frontend definieert de interfaces die de clientverzoeken moeten ontvangen, terwijl de backend de servers specificeert die het verkeer zullen afhandelen.

Voor dit voorbeeld configureren we de frontend om de clientverzoeken van poort 80 en 81 te accepteren. Vervolgens maken we een regel om het verkeer zo te verdelen dat de verbindingen van poort 80 naar een specifieke server worden gerouteerd, terwijl die van poort 81 naar een andere server gaan. server. Onze frontend-sectie ziet er als volgt uit:

Omdat we twee backend-servers hebben gemaakt, backend2 en linux_backend, moeten we de backend-secties voor beide servers maken. We specificeren welk IP-adres het verkeer naar onze “server1” en “server2” voor elk moet distribueren.

Nadat het configuratiebestand is bewerkt, slaat u het op en sluit u het bestand af. Houd er rekening mee dat er talloze manieren zijn om HAProxy te configureren, afhankelijk van uw behoeften. In ons geval creëren we de webservers die het opgegeven IP-adres gebruiken om ons verkeer te routeren. Wijzig de IP's zodat deze overeenkomen met die van uw webservers en op welke poort u wilt luisteren.

Stap 3: Controleer de geldigheid

Met HAProxy is er een opdracht waarmee u kunt verifiëren of uw configuratiebestand geldig is. Voer de volgende opdracht uit en kijk welke uitvoer je krijgt:

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

Als u een vergelijkbare uitvoer krijgt, bevestigt dit dat uw configuratiebestand geldig is. Anders zullen er fouten ontstaan.

Stap 4: Test de omgekeerde proxy

Met behulp van een commando als “curl” kunt u verkeer naar uw webserver sturen en zien hoe deze reageert. In ons geval gebruiken we Python3 om de webservers te maken.

Het uitvoeren van de opdracht “curl” bevestigt dat onze webserver naar de opgegeven poort luistert en dat HAProxy het verkeer naar de opgegeven server heeft gedistribueerd op basis van ons configuratiebestand.

U kunt ook via een browser toegang krijgen tot uw webserver en bevestigen dat de reverse proxy werkt.

Omdat we twee webservers hebben die kunnen worden gebruikt, afhankelijk van de poort die door de clientapparaten wordt gebruikt, laten we een andere webserver aan een andere poort koppelen en kijken wat er gebeurt.

De volgende uitvoer laat zien dat HAProxy ons verkeer naar de tweede backend-server heeft gestuurd nadat werd gedetecteerd dat het clientverzoek via poort 81 was verzonden, wat bevestigt dat de verkeersdistributie werkt zoals verwacht.

Zo configureert u HAProxy als een omgekeerde proxy.

Conclusie

HAProxy is een uitstekende keuze voor een reverse proxy voor uw webserver. Het configureren ervan is eenvoudig. Geef alleen op welke poort moet worden geluisterd naar clientverzoeken en welke regels moeten worden gebruikt voor de taakverdeling. Voeg vervolgens de backend-servers toe die u wilt gebruiken en uw reverse proxy is actief. In dit bericht werden de te volgen stappen gedeeld en een voorbeeld gedemonstreerd om ervoor te zorgen dat u vertrouwd raakt met HAProxy.