HAProxy 3.0 arriva con miglioramenti delle prestazioni, certificati e altro ancora

HAProxy

HAProxy il popolare bilanciatore di carico del software open source, ha recentemente annunciato il lancio di la nuova versione di "HAProxy 3.0", che viene fornito con una serie di aggiornamenti che promettono di migliorare semplicità, prestazioni, affidabilità e sicurezza.

Per coloro che non conoscono HAProxy, dovresti sapere che questo è un bilanciatore del carico che consente di distribuire il traffico HTTP e le richieste TCP tra un gruppo di server. HAProxy tiene conto di numerosi fattori, come la disponibilità del server, la valutazione del livello di carico e l'implementazione delle contromisure DDoS.

Principali novità di HAProxy 3.0

Questa nuova versione presentata di HAProxy 3.0, è posizionato come versione di supporto a lungo termine (LTS) e sarà supportato fino al 2029 e ha una nuova sezione crt-store che fornisce un modo flessibile per archiviare e utilizzare i certificati SSL, separando l'archiviazione dall'utilizzo su un frontend. Ciò consente di specificare individualmente le posizioni di ciascun componente del certificato, come file di certificato, file di chiave e file di risposta OCSP.

Un altro dei cambiamenti che spicca è il Funzionalità estese per il bilanciamento dei messaggi Syslog. È stato menzionato che sono stati compiuti progressi in modo che ora sia possibile impostare i pesi sulle righe del server nei logbackend della modalità. Nel frattempo, l'algoritmo sticky, che era limitato alla registrazione dei backend, ora si applica anche ai backend http in modalità tcp.mode.

Inoltre, in HAProxy è ora possibile impostare restrizioni per determinate richieste consentito dal protocollo HTTP/2 che può causare problemi, consentendo di identificare applicazioni difettose o client con comportamenti inappropriati

In HAProxy 3.0, viene presentata una nuova direttiva “guida”, questa direttiva può essere utilizzata in sezioni "frontend", "backend" e "ascolta" per collegare un identificatore univoco a queste sezioni, consentendo il salvataggio delle statistiche associate anche dopo il riavvio. Inoltre, è stato aggiunto il comando "dump del file delle statistiche" per salvare le statistiche in un file ed è stata aggiunta la direttiva "file delle statistiche" per leggere le statistiche da un file dopo il riavvio.

Anche, La quantità di dati che è possibile ottenere è stata ampliata, consentendoti di richiedere informazioni sul numero di sessioni HTTP aperte, sulla dimensione della coda di richieste e sul numero consentito di sessioni simultanee.

D'altra parte, el prestazioni delle aree di memorizzazione create con stick-table è aumentato in modo significativo implementando un meccanismo di blocco più efficiente, che migliora significativamente le prestazioni sui sistemi multi-thread. Ad esempio, su un sistema con 80 thread, le prestazioni sono aumentate di 6 volte.

Nelle configurazioni multisito in cui il certificato TLS viene selezionato in base all'ID host fornito dall'estensione TLS SNI, è stato aggiunto l'argomento "default-crt" per selezionare un certificato predefinito se i certificati esistenti non corrispondono al sito.

Se aggiunte le azioni “set-fc-tos” e “set-bc-tos” per sostituire il campo DS (Servizi differenziati) sui pacchetti IP sul backend o sul frontend e le azioni "set-fc-mark" e "set-bc-mark" per contrassegnare i pacchetti IP per il successivo collegamento a una tabella di routing specifica.

Ora è vietato inviare più comandi all'API Runtime in una richiesta separati da un carattere di nuova riga; è vietata l'impostazione della parola chiave “enabled” per i server dinamici; e la verifica degli URI non standard è stata rafforzata.

Del altri cambiamenti che risaltano di questa nuova versione:

  • Il prefisso "@virt" può essere utilizzato per creare mappe virtuali e file ACL che non vengono salvati su disco, con il contenuto gestito tramite l'API Runtime.
  • È disponibile il prefisso “@opt” che utilizza file virtuali solo se sul disco non sono presenti file reali.
  •  L'analisi è ora più rigorosa durante l'elaborazione HTTP/1 per la convalida della destinazione della richiesta.
  • Sono state introdotte direttive globali (http-err-codes e http-fail-codes) che consentono di impostare i codici di stato HTTP da tracciare.
  • Il metodo uuid Fetch ora accetta un argomento facoltativo che imposta la versione dell'UUID su 4 o 7
  • Le prestazioni degli script Lua a thread singolo caricati utilizzando la direttiva "lua-load" sono state notevolmente migliorate.
  • La formattazione delle righe di registro in JSON e CBOR è ora supportata.
  • Ora è possibile creare identificatori nel formato UUIDv7.

finalmente se lo sei interessati a saperne di più, puoi controllare i dettagli nel file seguente link