Recherche de site Web

Comment configurer un équilibreur de charge haute disponibilité avec « HAProxy » pour contrôler le trafic du serveur Web


HAProxy signifie proxy haute disponibilité. Il s'agit d'une application gratuite et open source écrite en langage de programmation C. L'application HAProxy est utilisée comme équilibreur de charge TCP/HTTP et pour les solutions proxy. L'utilisation la plus courante de l'application HAProxy consiste à répartir la charge de travail sur plusieurs serveurs, par exemple un serveur Web, un serveur de base de données, etc., améliorant ainsi les performances globales et la fiabilité de l'environnement du serveur.

L'application hautement efficace et rapide est utilisée par de nombreuses organisations réputées dans le monde, notamment Twitter, Reddit, GitHub et Amazon. Il est disponible pour les plateformes Linux, BSD, Solaris et AIX.

Dans ce didacticiel, nous aborderons le processus de configuration d'un équilibreur de charge haute disponibilité à l'aide de HAProxy pour contrôler le trafic des applications HTTP (serveurs Web) en séparant les requêtes sur plusieurs serveurs.

Pour cet article, nous utilisons la version stable la plus récente de la version HAProxy, à savoir 1.5.10 publiée le 31 décembre 2014. Et nous utilisons également CentOS 6.5 pour cela. configuration, mais les instructions ci-dessous fonctionnent également sur les distributions CentOS/RHEL/Fedora et Ubuntu/Debian.

Configuration de mon environnement

Ici, notre serveur HAProxy d'équilibrage de charge ayant le nom d'hôte websrv.tecmintlocal.com avec l'adresse IP 192.168.0.125.

Configuration du serveur HAProxy
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Configuration des serveurs Web clients

Les quatre autres machines fonctionnent avec des serveurs Web tels qu'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]

Étape 1 : Installation d'Apache sur les machines clientes

1. Nous devons d’abord installer Apache sur les quatre serveurs et partager l’un des sites. Pour installer Apache sur les quatre serveurs, nous allons utiliser ici la commande suivante.

yum install httpd		[On RedHat based Systems]
apt-get install apache2	[On Debian based Systems]

2. Après avoir installé le serveur Web Apache sur les quatre ordinateurs clients, vous pouvez vérifier n'importe qui sur le serveur si Apache est en cours d'exécution en y accédant via l'adresse IP dans le navigateur.

http://192.168.0.121

Étape 2 : Installation du serveur HAProxy

3. Dans la plupart des distributions Linux modernes actuelles, HAPRoxy peut être facilement installé à partir du référentiel de base par défaut à l'aide du gestionnaire de packages par défaut yum ou apt-get .

Par exemple, pour installer HAProxy sur les versions RHEL/CentOS/Fedora et Debian/Ubuntu, exécutez la commande suivante. Ici, j'ai également inclus le package openssl, car nous allons configurer HAProxy avec le support SSL et NON-SSL.

yum install haproxy openssl-devel	[On RedHat based Systems]
apt-get install haproxy		[On Debian based Systems]

Remarque : Sur Debian Whezzy 7.0, nous devons activer le référentiel de backports en ajoutant un nouveau fichier backports.list sous le répertoire « /etc/apt/sources.list.d/ » avec le contenu suivant.

echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

Ensuite, mettez à jour la base de données du référentiel et installez HAProxy.

apt-get update
apt-get install haproxy -t wheezy-backports

Étape 3 : configurer les journaux HAProxy

4. Ensuite, nous devons activer la fonctionnalité de journalisation dans HAProxy pour un débogage futur. Ouvrez le fichier de configuration principal HAProxy « /etc/haproxy/haproxy.cfg » avec l'éditeur de votre choix.

vim /etc/haproxy/haproxy.cfg

Ensuite, suivez les instructions spécifiques à la distribution pour configurer la fonctionnalité de journalisation dans HAProxy.

Sur RHEL/CentOS/Fedora

Sous #Global settings, activez la ligne suivante.

log         127.0.0.1 local2
Sur Ubuntu/Debian

Sous #Global settings, remplacez les lignes suivantes :

log /dev/log        local0
log /dev/log        local1 notice 

Avec,

log         127.0.0.1 local2

5. Ensuite, nous devons activer la réception syslog UDP dans le fichier de configuration '/etc/rsyslog.conf' pour séparer les fichiers journaux pour HAProxy sous /var/log répertoire. Ouvrez votre fichier « rsyslog.conf » avec l'éditeur de votre choix.

vim /etc/rsyslog.conf

Décommnet ModLoad et UDPServerRun, ici notre serveur écoutera le Port 514 pour collecter les journaux dans syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Ensuite, nous devons créer un fichier séparé 'haproxy.conf' sous le répertoire '/etc/rsyslog.d/' pour configurer fichiers journaux séparés.

vim /etc/rsyslog.d/haproxy.conf

Ajoutez la ligne suivante au fichier nouvellement créé.

local2.*	/var/log/haproxy.log

Enfin, redémarrez le service rsyslog pour mettre à jour les nouvelles modifications.

service rsyslog restart