Come configurare HAProxy come proxy inverso

Come Configurare Haproxy Come Proxy Inverso



Quando si dispone di un server Web, avere un modo per inoltrare le richieste del client e la risposta del server aiuta a distribuire il traffico e migliora la sicurezza. Un proxy inverso, come HAProxy, funge da intermediario tra l'applicazione Web e i dispositivi client quando configurato. In questo modo, riceve le richieste dei client e le inoltra al server Web appropriato mentre riceve la risposta del server e le trasmette ai client. La configurazione di HAProxy sul lato server affinché agisca come proxy inverso è un processo semplice. Questo post ha dettagliato i passaggi che dovresti eseguire.

Perché utilizzare un proxy inverso?

Prima di discutere i passaggi per configurare HAProxy come proxy inverso, evidenziamo rapidamente perché un proxy inverso funziona a tuo vantaggio. Di seguito sono riportati i vantaggi che si ottengono utilizzando HAProxy come proxy inverso:

  1. Bilancio del carico - Il tuo server web può, a un certo punto, avere molte richieste client che, se non ben gestite, potrebbero sovraccaricarlo causando tempi di inattività imprevisti. Tuttavia, la configurazione di un proxy inverso garantisce che il traffico venga distribuito tra i server back-end per garantire che nessun server venga sovraccaricato di richieste.
  2. Firewall e sicurezza – Il proxy inverso collega i dispositivi client al server web. In questo modo si riduce il rischio di esporre direttamente i nostri server backend a Internet. In questo modo, il traffico dannoso può essere facilmente filtrato e bloccato prima che danneggi i server.
  3. Migliore memorizzazione nella cache – Con un proxy inverso, noterai il miglioramento generale delle prestazioni poiché il tempo di caricamento verrà ridotto memorizzando nella cache il contenuto statico. Inoltre, otterrai un'esperienza utente migliore.
  4. Terminazione SSL/TLS – Con un proxy inverso, la crittografia e la decrittografia delle connessioni SSL/TLS diventa semplice e i tuoi server backend non dovranno farsi carico di questo compito, riducendo il loro carico.

Come configurare HAProxy come proxy inverso

Dopo aver spiegato perché un proxy inverso come HAProxy è essenziale, diamo i passaggi di configurazione da seguire.







Passaggio 1: installare HAProxy



Probabilmente hai già HAProxy installato sul tuo sistema. Se è così, salta questo passaggio. Tuttavia, per chi è nuovo a questo, eseguire il comando seguente per installare HAProxy:



$ sudo apt installa haproxy

Nel nostro caso lo abbiamo già installato.





Passaggio 2: modificare il file di configurazione HAProxy



HAProxy dispone di un file di configurazione a cui è necessario accedere e modificare per configurarlo come proxy inverso. Inizia aprendo il file di configurazione utilizzando un editor di testo.

$ sudo nano /etc/haproxy/haproxy.cfg

Una volta aperto, tieni presente che ha configurazioni di base per le sezioni predefinita e globale. Dobbiamo poi creare altre due sezioni: frontend e backend. Il frontend definisce le interfacce che dovrebbero ricevere le richieste dei client, mentre il backend specifica i server che gestiranno il traffico.

Per questo esempio, configuriamo il frontend per accettare le richieste dei client dalle porte 80 e 81. Creiamo quindi una regola per distribuire il traffico in modo tale che le connessioni dalla porta 80 vengano instradate a un server specifico mentre quelle dalla porta 81 vadano a un altro server. La nostra sezione frontend è come mostrato di seguito:

Poiché abbiamo creato due server backend, backend2 e linux_backend, dobbiamo creare le sezioni backend per entrambi i server. Per ciascuno specifichiamo quale IP distribuire il traffico sui nostri “server1” e “server2”.

Una volta modificato il file di configurazione, salvarlo ed uscire dal file. Tieni presente che esistono numerosi modi per configurare HAProxy a seconda delle tue esigenze. Nel nostro caso, creiamo i server web utilizzando l'indirizzo IP specificato per instradare il nostro traffico. Cambia gli IP in modo che corrispondano a quelli dei tuoi server web e su quale porta desideri ascoltare.

Passaggio 3: verificare la validità

Con HAProxy, esiste un comando che ti consente di verificare se il tuo file di configurazione è valido. Esegui il comando seguente e guarda quale output ottieni:

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Se ottieni un output simile, conferma che il tuo file di configurazione è valido. Altrimenti, genererà errori.

Passaggio 4: testare il proxy inverso

Usando un comando come 'curl', puoi inviare un traffico al tuo server web e vedere come risponde. Nel nostro caso, utilizziamo Python3 per creare i server web.

L'esecuzione del comando 'curl' conferma che il nostro server Web è in ascolto sulla porta specificata e che HAProxy ha distribuito il traffico al server specificato in base al nostro file di configurazione.

Puoi anche accedere al tuo server web su un browser e verificare che il proxy inverso funzioni.

Poiché abbiamo due server Web che possono essere utilizzati a seconda della porta utilizzata dai dispositivi client, colleghiamo un server Web diverso a una porta diversa e vediamo cosa succede.

L'output seguente mostra che HAProxy ha inviato il nostro traffico al secondo server backend dopo aver rilevato che la richiesta del client era stata inviata tramite la porta 81, confermando che la distribuzione del traffico funziona come previsto.

Ecco come configurare HAProxy come proxy inverso.

Conclusione

HAProxy è una scelta eccellente per un proxy inverso per il tuo server web. Configurarlo è semplice. Specifica solo quale porta ascoltare le richieste del client e quali regole utilizzare per il bilanciamento del carico. Quindi, aggiungi i server backend da utilizzare e avrai il tuo proxy inverso attivo e funzionante. Questo post ha condiviso i passaggi da seguire e ha dimostrato un esempio per assicurarti di sentirti a tuo agio con HAProxy.