2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1 : Aperçu du cas
2 : Connaissance préalable au cas
3 : Environnement du cas
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz
[root@localhost ~]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/0
[root@localhost html]# echo "test web01" > test.html
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx ##Démarrer le processus nginx
[root@localhost ~]# netstat -anpt | grep nginx
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install pcre-devel bzip2-devel gcc*
[root@localhost ~]# tar zxvf haproxy-1.5.19.tar.gz
[root@localhost ~]# cd haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# créer TARGET=linux26
[root@localhost haproxy-1.5.19]# make install
Note:
linux22 pour Linux 2.2
linux24 pour Linux 2.4 et supérieur (par défaut)
linux24e pour Linux 2.4 avec prise en charge d'un epoll fonctionnel (> 0.21)
linux26 pour Linux 2.6 et supérieur
solaris pour Solaris 8 ou 10 (autres non testés)
freebsd pour FreeBSD 5 à 8.0 (autres non testés)
openbsd pour OpenBSD 3.1 à 4.6 (autres non testés)
Cygwin pour Cygwin
générique pour tout autre système d'exploitation.
personnalisé pour ajuster manuellement chaque paramètre
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy
[root@localhost ~]# chkconfig --add haproxy
(3) Introduction à la configuration Haproxy
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
mondial
journal 127.0.0.1 local0
journal 127.0.0.1 local1 avis
#log loghost local0 info
maxconn 4096
uid 99
gid99
démon
#déboguer
#calme
défauts
journal global
mode http
option httplog
option dontlognull
tentatives 3
# réexpédition
maxconn 2000
délai d'attente 5000
délai d'attente cli 50000
délai d'attente srv 50000
écouter webcluster 0.0.0.0:80
option httpchk GET /index.html
équilibre roundrobin
serveur inst1 192.168.1.61:80 vérifier inter 2000 automne 3
serveur inst2 192.168.1.62:80 vérifier inter 2000 automne 3
Vous pouvez ajouter du poids après chaque serveur pour définir la valeur du poids.
serveur inst1 192.168.1.61:80 vérifier inter 2000 automne 3poids 1
serveur inst2 192.168.1.62:80 vérifier inter 2000 automne 3poids 2
Explication de chaque affirmation
mondial
journal 127.0.0.1 local0 \configurer la journalisation,local0Est le périphérique de journalisation, la valeur par défaut est le journal système
journal 127.0.0.1 local1 avis \Le niveau de journalisation estavis
#log loghost local0 info
maxconn 4096 \Nombre maximum de connexions
identifiant 99 \utilisateuridentifiant utilisateur
gid99 \utilisateurDieu
démon \Exécuter en tant que processus démon
#débogage \Mode débogage, affiche les informations de démarrage sur la sortie standard
#calme \Mode silencieux, aucune sortie au démarrage
défauts
journal global \utiliserglobejournal défini dans
mode http \Le mode esthttp
option httplog \utiliserhttpLe format de journalisation
option dontlognull \assurerHAProxyN'enregistrez pas les paquets de battements de cœur envoyés par l'équilibreur de charge de niveau supérieur pour détecter les données d'état.
tentatives 3 \Vérifiez le nombre d'échecs de connexion des nœuds, qui dépasse3Le nœud est considéré comme indisponible
# réexpédition\quand chargerLorsque la valeur est très élevée, les connexions traitées dans la file d'attente actuelle depuis longtemps seront automatiquement interrompues.
maxconn 2000 \Nombre maximum de connexions
délai d'attente 5000 \Délai de connection dépasséMS
délai d'attente cli 50000Délai d'expiration du clientMS
délai d'attente srv 50000Expiration du délai du serveurMS
écouter webcluster 0.0.0.0:80 \Définir les numéros de cluster et de port d'écoute
option httpchk GET /index.html \Vérifiez le serveurindex.htmldocument,Paramètres d'URL de détection de battement de coeur
tournoi à la ronde d'équilibre \L'algorithme de planification d'équilibrage de charge est un tourniquet
serveur inst1 192.168.1.61:80 vérifier inter 2000 automne 3 \Définir des nœuds en ligne
serveur inst2 192.168.1.62:80 vérifier inter 2000 automne 3
vérifier entre 2000est de détecter la fréquence des battements cardiaques (chaque2000 msDétecté une fois),automne 3Oui3Le serveur est réputé indisponible en cas de panne
Dans la nouvelle version, les paramètres de délai d'attente ont été ajustés comme suit :
contimeout est remplacé par timeout connect :Définir le délai d'attente d'Haproxy pour transférer les requêtes des clients vers le serveur backend
clitimeout est remplacé par le client timeout :Le délai d'expiration pour l'inactivité du client est le temps nécessaire à l'application pour se connecter à haproxy.
srvtimeout est remplacé par timeout server :Une fois que le client a établi une connexion avec le serveur, le délai d'attente du serveur correspond au temps nécessaire à haproxy pour se connecter au serveur Web principal.
Note:
haproxyIl existe huit algorithmes de planification
chroot /usr/share/haproxy \Il s'agit de modifier l'emplacement du répertoire racine référencé lors de l'exécution du programme. Si vous avez ce code, vous devez créer ce répertoire.
À propos des niveaux de journalisation
niveau statique DEBUG
DEBUG Level souligne que les événements d’informations à granularité fine sont très utiles pour le débogage des applications.
niveau statique INFO
Le niveau INFO indique que le message met en évidence le processus en cours d’exécution de l’application à un niveau grossier.
Niveau statique WARN
Le niveau WARN indique une situation d’erreur potentielle.
ERREUR de niveau statique
Le niveau ERREUR indique que même si un événement d'erreur se produit, il n'affecte toujours pas le fonctionnement continu du système.
Niveau statique FATAL
Le niveau FATAL indique que chaque événement d'erreur grave entraînera la fermeture de l'application.
De plus, deux niveaux de journalisation spéciaux sont disponibles :
Niveau statique TOUS
Le niveau ALL est le niveau le plus bas et est utilisé pour activer toute la journalisation.
Niveau statique OFF
Le niveau OFF est le niveau le plus élevé et est utilisé pour désactiver toute journalisation.
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy start
http://192.168.1.60/test.html
Actualisez la page pour tester
ou tester à l'aide d'un script
[root@localhost ~]# pour i dans $(seq 10); faire curl http://192.168.1.60/test.html ; terminé
Haproxy n'enregistre pas les journaux par défaut. En plus de spécifier la sortie du journal dans la section globale de haproxy.conf, vous devez également configurer le fichier de configuration du journal système.
première méthode :
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
mondial
# journal 127.0.0.1 local0
# journal 127.0.0.1 local1 avis
#log loghost local0 info
maxconn 4096
chroot /usr/share/haproxy
uid 99
gid99
démon
#déboguer
#calme
journal /dev/log local0 info
journal /dev/log local0 avis
[root@localhost haproxy-1.4.24]# touchez /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
si ($programname == 'haproxy' et $syslogseverity-text == 'info') alors -/var/log/haproxy/haproxy-info.log
& ~
si ($programname == 'haproxy' et $syslogseverity-text == 'notice') alors -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# redémarrage du service rsyslog
[root@localhost ~]#/etc/init.d/haproxy redémarrer
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
Deuxième méthode :
(1) Modifier /etc/haproxy/haproxy.conf
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
mondial
journal 127.0.0.1 local3
#local3 est le périphérique correspondant à la configuration dans /etc/rsyslog.conf, et le niveau de journalisation des informations est recyclé par défaut.
(2) Écrire le fichier journal haproxy
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~
Note:
$ModLoad imudpProtocole UDP pour la collecte des journaux
$UDPServerRun 514Spécifiez le numéro de port utilisé pour la collecte des journaux
local3.* /var/log/haproxy.logSpécifier l'emplacement de stockage des journaux
(3) Configurez le fichier de configuration principal de rsyslog et activez la journalisation à distance (facultatif)
[root@localhost ~]# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0″
#-c 2 Utiliser le mode de compatibilité, la valeur par défaut est -c 5
#-r Activer la journalisation à distance
#-m 0 marque l'horodatage.L'unité est les minutes. Lorsqu'elle est à 0, cela signifie que la fonction est désactivée.
(4) Redémarrez les services haproxy et rsyslog
[root@localhost ~]# systemctl redémarrer rsyslog
[root@localhost ~]# systemctl redémarre haproxy
(5) Vérifiez le journal après avoir visité le site Web
[root@localhost ~]# cat /var/log/haproxy.log
Extension : proxy mysql
écouter mysql 0.0.0.0:3306
serveur mysql1 192.168.10.205:3306 vérifier le port 3306 maxconn 300