Udgivelse af HTTP/TCP-loadbalancer HAProxy 3.0

Efter fem år siden dannelsen af 2.0-grenen er udgangen af load balancer HAProxy 3.0 offentliggjort, der gør det muligt at fordele HTTP-trafik og vilkårlige TCP-forespørgsler mellem en gruppe servere under hensyntagen til mange faktorer (for eksempel kontrollerer det tilgængeligheden af servere, vurderer belastningen, har midler til at modstå DDoS) og foretager en grundlæggende filtrering af data (for eksempel kan det analysere HTTP-headere, filtrere overførsel af ukorrekte forespørgselsparametre, blokere SQL-injektion og XSS, tilknytte indholdsbehandlingsagenter). HAProxy kan også anvendes til at koordinere interaktionen mellem komponenterne i systemer baseret på mikroservices-arkitektur. Koden til projektet er skrevet i C og leveres under GPLv2-licensen. Projektet anvendes på mange store websteder, herunder Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter og Vimeo.

HAProxy 3.0-grenen er klassificeret som en udgivelse med langvarig støtte (LTS) og vil blive understøttet indtil 2029. Nøgleændringer:

  • En ny sektion "crt-store" er tilføjet til konfigurationen for at indstille opbevaring og brug af TLS-certifikater. I modsætning til den tidligere tilgængelige indstilling crt-list er crt-store opbevaringen af certifikater adskilt fra deres anvendelse i frontend, hvilket gør det muligt at angive placeringen af hver enkelt komponent af certifikatet (filer med certifikater, nøgler og OCSP-data) individuelt.
  • Muligheden for at sætte begrænsninger for forespørgsler ved hjælp af HTTP/2, som protokollen tillader, men som kan skabe problemer, er tilføjet. For eksempel kan afsendelse af en CONTINUATION frame føre til DoS-angreb kaldet Continuation flood.
  • En ny konfigurationsdirektiv "guid" er tilføjet, som kan bruges i sektionerne "frontend", "backend" og "listen". Direktiv binder en unik identifier til disse sektioner, hvilket gør det muligt at bevare den tilknyttede statistik efter genstart (Stats-sidens tilstand vil ikke blive nulstillet). Den nye kommando "dump stats-file" er tilføjet for at gemme statistik til en fil, og en ny konfigurationsdirektiv "stats-file" er tilføjet for at læse fra filen efter genstart.
  • Mulighederne for balancering af Syslog-meddelelser er blevet udvidet. Muligheden for at tildele vægtkoefficienter til server-relaterede linjer i backend-loggene er tilføjet.
  • Understøttelse af logformattering i JSON- og CBOR-format er tilføjet.
  • Data, der kan indhentes ved hjælp af informationsudtrækningsfunktioner, er blevet udvidet. For eksempel kan oplysninger om antallet af åbne HTTP-sessioner for backend og frontend, størrelsen på anmodningsbehandlingskøen og det tilladte antal samtidige sessioner anmodes.
  • Ydelsen for enkelttrådede Lua-scripts, der indlæses ved hjælp af direktivet «lua-load», er forbedret.
  • Ydelsen for hukommelsesområder, der oprettes med direktivet stick-table, er i høj grad forbedret. For eksempel på et system med 80 tråde er ydelsen steget med 6 gange.
  • I konfigurationer med flere sites, hvor TLS-certifikat valget er baseret på host-ID'et, der overføres via TLS-udvidelsen SNI, er argumentet «default-crt» tilføjet, hvilket tillader at angive standardcertifikatet, der vælges, hvis der ikke kan matches et site-certifikat.
  • Handlingerne «set-fc-tos» og «set-bc-tos» er tilføjet for at indsætte DS-feltet (Differentiated Services), der bestemmer trafikprioritet i IP-pakker på backend- eller frontend-siden.
  • Handlingerne «set-fc-mark» og «set-bc-mark» er tilføjet for at mærke IP-pakker på backend- eller frontend-siden, for eksempel til senere tilknytning til en bestemt routingtabel.
  • Understøttelse af at oprette identifikatorer i UUIDv7-format er tilføjet.
  • Muligheden for at bruge præfikset «@virt» til at oprette virtuelle ACL- og Map-filer, som ikke gemmes på disken, er implementeret. Indholdet af virtuelle ACL- og Map-filer tilføjes og fjernes ved hjælp af Runtime API. Præfikset «@opt» er også tilgængeligt, hvor virtuelle filer kun anvendes, hvis den faktiske fil ikke findes på disken.
  • Der er foretaget ændringer, der bryder bagudkompatibiliteten: det er forbudt at sende flere kommandoer i en enkelt anmodning til Runtime API adskilt med et linjeskift; det er forbudt at sætte nøgleordet «enabled» for dynamiske servere; kontrollen af ikke-standard URI'er er blevet strammet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster