Ricerca nel sito web

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