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.