HAProxy de veelzijdige load balancer

Datum 10-12-2018

HAProxy is een open source proxyserver die failover en load balancing kan toevoegen aan een server omgeving. Wereldwijd is HAProxy de standaard aan het worden voor load balancers en wordt door veel grote partijen op het internet gebruikt om grote hoeveelheden verkeer naar hun websites te kunnen verwerken.

De snelle load balancer

HAProxy werkt zo efficiënt dat een kleine standaard server setup al duizenden verbindingen kan verwerken. Met een beetje meer tuning en resources kan de capaciteit verhoogd worden naar tienduizenden verbindingen.

De configuratie van HAProxy is redelijk eenvoudig. De belangrijkste onderdelen zijn de frontend listeners (bijvoorbeeld poorten 80/443 HTTP/HTTPS) en de backend servers (de eigenlijke webservers). HAProxy kan met behulp van TCP en HTTP health checks bepalen of de backend servers bereikbaar zijn en verbindingen kunnen afhandelen.

De veelzijdige load balancer

Het is duidelijk dat HAProxy snel is, veel verbindingen aankan en eenvoudig te configureren is. Maar wat kunnen we er nog meer mee?

  • Sticky Sessions: Sessies kunnen door middel van cookie control aan een vaste backend server worden “geplakt”. Dit is vooral bij interactieve websites als webshops van belang.
  • Rewrites: De proxyserver kan uw rewrites doen. Dit zorgt ervoor dat uw webservers niet onnodig belast worden.
  • ACL’s: Met Access Control Lists kunt u bepalen welke url’s naar welke backend worden gestuurd. Daarnaast kan het ook toegang beperken en uw webserver beschermen:
    • bepaal welke ip-adressen toegang hebben naar url’s of uri’s
    • bepaal welke uri’s in een request zijn toegestaan
    • Beperk toegestane useragents zoals agressieve bots en crawlers
    • voeg http security headers toe aan de sessie
    • forceer het gebruik van https
  • TCP proxy: Behalve websiteverkeer (HTTP/HTTPS) kan HAProxy bijna elke TCP verbinding afhandelen. Denk hierbij aan bijvoorbeeld FTP, SSH, MYSQL en Postgresql.
  • Configuratie reloads: Wijzigingen aan de HAProxy configuratie kunnen zonder onderbrekingen worden ingeladen
  • HA Failover: Een HAProxy load balancer kan zeer eenvoudig in een High Availability Failover setup geplaatst worden, zodat wanneer één proxy server uitvalt, de tweede het overneemt.
  • Beperk sessies: Aan elke backend server kan een limiet in het aantal verbindingen worden gegeven waardoor overbelasting wordt voorkomen. Bij overschrijding komen de verbindingen bij de HAProxy load balancer in een wachtrij.
HAProxy setup met proxy failover


De veilige load balancer

Door al deze ACL’s, Session controls, HTTP opties, rewrites, health checks enzovoort is de HAProxy een toegevoegde beveiliging voor de websites. Met deze middelen kan het verkeer dat daadwerkelijk op de webservers aankomt goed gecontroleerd en gecorrigeerd worden. Ingebouwde health checks zorgen ervoor dat een backend webserver die niet snel (genoeg) reageert geen nieuwe sessies meer krijgt. Hierdoor blijven de websites voor alle gebruikers beschikbaar.

Neem contact op