Come configurare HAProxy per le connessioni WebSocket

Come Configurare Haproxy Per Le Connessioni Websocket



Le applicazioni WebSocket hanno una comunicazione in tempo reale e bidirezionale tra il client e il server. Anche con le connessioni WebSocket, è comunque necessario un modo per distribuire il traffico per evitare di sovraccaricare un server che porterebbe a tempi di inattività e indisponibilità.

HAProxy è un esempio di bilanciatore del carico gratuito e affidabile che funziona anche come proxy inverso. È possibile configurare HAProxy per le connessioni WebSocket per utilizzare al meglio le funzionalità dei WebSocket, in particolare sul trasferimento dei dati in tempo reale, riducendo al minimo il carico del server utilizzando HAProxy. Questo post presenta tutti i passaggi necessari per configurare HAProxy per le connessioni WebSocket.

Guida passo passo su come configurare HAProxy per le connessioni WebSocket

Con le connessioni WebSocket, la comunicazione tra server e client è di lunga durata. Persiste finché il server o il client non decide di chiuderlo. Pertanto, poter lavorare con un bilanciatore del carico garantisce che il traffico possa essere distribuito su un altro server se il server è sovraccarico. In questo modo, il client e il server possono godere di una connessione ininterrotta e di lunga durata a bassa latenza.







1. Installare HAProxy

Il primo passo per configurare HAProxy per le connessioni WebSocket è assicurarsi di avere installato HAProxy. Se lo hai già installato, salta questo passaggio. Altrimenti, esegui il comando seguente per installarlo:



$ sudo apt-get install aproxy



2. Modificare la configurazione HAProxy

Per configurare HAProxy per le connessioni WebSocket, dobbiamo modificare la configurazione di HAProxy per supportare le connessioni WebSocket. Dobbiamo modificare la sezione “Default” e creare le sezioni “Frontend” e “Backend”.





Aprire la configurazione HAProxy utilizzando un editor di testo come segue:

$ sudo nano / eccetera / aproxy / haproxy.cfg

Nella sezione 'Default', modificalo come presentato nell'immagine seguente. Innanzitutto specifichiamo che stiamo lavorando con connessioni HTTP e definiamo dove inviare i file di registro. Successivamente, impostiamo i timeout per le diverse attività. Ad esempio, il timeout connessione è il tempo massimo che dovrebbe impiegare un tentativo di connessione al server. Se viene raggiunto il tempo massimo, la connessione viene considerata fallita e può essere ritentata.



In questo caso impostiamo il timeout della connessione su 5000 millisecondi. Puoi regolare il timeout in base a come li vedi meglio per il tuo caso. Modificali in base alla tua applicazione e ricorda la durata delle sessioni WebSocket e la durata che ti aspetti che siano.

Successivamente, dobbiamo creare la sezione 'Frontend' in cui colleghiamo quali porte utilizzare per le connessioni WebSocket e a quale server backend fare riferimento. In questo caso, specifichiamo la porta 80 e forniamo l'URL per accedere alla pagina 'Statistiche' per monitorare il nostro HAProxy. Infine, definiamo a quale sezione di backend fare riferimento nel bilanciamento del carico.

Nella sezione “Backend”, distribuiamo il carico utilizzando il round robin. L''opzione forward for' specifica a HAProxy di includere un'intestazione 'X-Forward-For' che contiene l'indirizzo IP del client quando si invia la richiesta di connessione. In questo modo, il server backend otterrà l'IP client corretto.

L'opzione “http-server-close” limita le risorse evitando che eventuali connessioni inattive occupino le risorse del server. Sebbene le connessioni WebSocket siano di lunga durata, dobbiamo verificare la presenza di connessioni di lunga durata inattive e chiuderle per evitare inutili sprechi di risorse.

Infine, aggiungi i server backend che utilizzerai per distribuire il traffico. Assicurati di fornire l'indirizzo IP corretto per i server e sostituisci quelli nell'immagine seguente:

Il tuo HAProxy è ora configurato per le connessioni WebSocket. Salva le modifiche e chiudi il file.

3. Test di validità

Prima di riavviare HAProxy, possiamo eseguire un comando rapido per verificare se il file è valido e non presenta errori. Per questo, esegui il seguente comando:

$ sudo aproxy -C -F / eccetera / aproxy / haproxy.cfg

4. Riavviare e testare la connessione WebSocket

Una volta che il file è valido, riavviare il servizio HAProxy.

Questo è tutto. Hai configurato HAProxy per le connessioni WebSocket. Puoi testare la connessione per assicurarti che tutto il traffico WebSocket venga inoltrato correttamente.

Conclusione

La configurazione di HAProxy per le connessioni WebSocket è una soluzione ricercata, soprattutto dagli amministratori web. Questo post ha elaborato il processo in dettaglio, fornendo i passaggi e un esempio per assicurarti di seguirlo comodamente e riuscire a implementare lo stesso nel tuo caso. Segui ogni passaggio e assicurati di comprendere il concetto e il processo per implementarlo.