Come configurare il bilanciatore del carico ad alta disponibilità con "HAProxy" per controllare il traffico del server Web
HAProxy sta per proxy ad alta disponibilità. È un'applicazione gratuita e open source scritta in linguaggio di programmazione C. L'applicazione HAProxy viene utilizzata come bilanciatore del carico TCP/HTTP e per soluzioni proxy. L'uso più comune dell'applicazione HAProxy è distribuire il carico di lavoro su più server, ad esempio server Web, server database, ecc., migliorando così le prestazioni generali e l'affidabilità dell'ambiente server.
L'applicazione altamente efficiente e veloce viene utilizzata da molte organizzazioni rinomate a livello mondiale, tra cui, a titolo esemplificativo, Twitter, Reddit, GitHub e Amazon. È disponibile per la piattaforma Linux, BSD, Solaris e AIX.
In questo tutorial discuteremo il processo di configurazione di un bilanciatore del carico ad alta disponibilità utilizzando HAProxy per controllare il traffico delle applicazioni basate su HTTP (server Web) separando le richieste su più server.
Per questo articolo, utilizziamo la versione stabile più recente della versione HAProxy, ovvero 1.5.10 rilasciata il 31 dicembre 2014. Inoltre, per questo utilizziamo CentOS 6.5 setup, ma le istruzioni fornite di seguito funzionano anche su distribuzioni CentOS/RHEL/Fedora e Ubuntu/Debian.
Configurazione del mio ambiente
Qui il nostro server HAProxy di bilanciamento del carico con nome host come websrv.tecmintlocal.com con indirizzo IP 192.168.0.125.
Configurazione del server HAProxy
Operating System : CentOS 6.5
IP Address : 192.168.0.125
Hostname : websrv.tecmintlocal.com
Configurazione dei server Web client
Le altre quattro macchine sono attive e funzionanti con server web come Apache.
Web Server #1 : CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 : CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 : CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 : CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]
Passaggio 1: installazione di Apache sui computer client
1. Per prima cosa dobbiamo installare Apache in tutti e quattro i server e condividere uno qualsiasi dei siti, per installare Apache in tutti e quattro i server qui utilizzeremo il seguente comando.
yum install httpd [On RedHat based Systems]
apt-get install apache2 [On Debian based Systems]
2. Dopo aver installato il server web Apache su tutte e quattro le macchine client, puoi verificare su chiunque del server se Apache è in esecuzione accedendovi tramite l'indirizzo IP nel browser.
http://192.168.0.121
Passaggio 2: installazione del server HAProxy
3. Nella maggior parte delle moderne distribuzioni Linux di oggi, HAPRoxy può essere facilmente installato dal repository di base predefinito utilizzando il gestore pacchetti predefinito yum o apt-get >.
Ad esempio, per installare HAProxy sulle versioni RHEL/CentOS/Fedora e Debian/Ubuntu, eseguire il comando seguente. Qui ho incluso anche il pacchetto openssl, perché configureremo HAProxy con il supporto SSL e NON-SSL.
yum install haproxy openssl-devel [On RedHat based Systems]
apt-get install haproxy [On Debian based Systems]
Nota: su Debian Whezzy 7.0, dobbiamo abilitare il repository backports aggiungendo un nuovo file backports.list nella directory “/etc/apt/sources.list.d/” con il seguente contenuto.
echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list
Successivamente, aggiorna il database del repository e installa HAProxy.
apt-get update
apt-get install haproxy -t wheezy-backports
Passaggio 3: configurare i registri HAProxy
4. Successivamente, dobbiamo abilitare la funzionalità di registrazione in HAProxy per il debug futuro. Apri il file di configurazione principale di HAProxy "/etc/haproxy/haproxy.cfg" con l'editor che preferisci.
vim /etc/haproxy/haproxy.cfg
Successivamente, seguire le istruzioni specifiche della distribuzione per configurare la funzionalità di registrazione in HAProxy.
Su RHEL/CentOS/Fedora
In #Impostazioni globali, abilita la seguente riga.
log 127.0.0.1 local2
Su Ubuntu/Debian
In #Impostazioni globali, sostituisci le seguenti righe:
log /dev/log local0
log /dev/log local1 notice
Con,
log 127.0.0.1 local2
5. Successivamente, dobbiamo abilitare la ricezione del syslog UDP nel file di configurazione '/etc/rsyslog.conf' per separare i file di registro per HAProxy in /var/log cartella. Apri il file "rsyslog.conf" con l'editor che preferisci.
vim /etc/rsyslog.conf
Disattiva ModLoad e UDPServerRun, qui il nostro server ascolterà la Porta 514 per raccogliere i log in syslog.
Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
6. Successivamente, dobbiamo creare un file separato "haproxy.conf" nella directory "/etc/rsyslog.d/" per configurare file di registro separati.
vim /etc/rsyslog.d/haproxy.conf
Aggiungi la riga seguente al file appena creato.
local2.* /var/log/haproxy.log
Infine, riavvia il servizio rsyslog per aggiornare le nuove modifiche.
service rsyslog restart