2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: Fallübersicht
2: Vorfallwissen
3: Fallumgebung
[root@localhost ~]# yum -y installiere 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 stoppe Firewall
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx ##Starten Sie den Nginx-Prozess
[root@localhost ~]# netstat -anpt | grep nginx
[root@localhost ~]# systemctl stoppe Firewall
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y installiere 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]# make TARGET=linux26
[root@localhost haproxy-1.5.19]# make install
Notiz:
linux22 für Linux 2.2
linux24 für Linux 2.4 und höher (Standard)
linux24e für Linux 2.4 mit Unterstützung für ein funktionierendes Epoll (> 0.21)
linux26 für Linux 2.6 und höher
Solaris für Solaris 8 oder 10 (andere ungetestet)
freebsd für FreeBSD 5 bis 8.0 (andere ungetestet)
openbsd für OpenBSD 3.1 bis 4.6 (andere ungetestet)
cygwin für Cygwin
generisch für jedes andere Betriebssystem.
Benutzerdefiniert, um jede Einstellung manuell anzupassen
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp Beispiele/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# cp Beispiele/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) Einführung in die Haproxy-Konfiguration
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
weltweit
Protokoll 127.0.0.1 local0
Protokoll 127.0.0.1 local1 Hinweis
#log loghost local0 info
maxconn 4096
Flüssigkeit 99
99.
Daemon
#debuggen
#ruhig
Vorgabewerte
globales Protokoll
Modus http
Option httplog
Option dontlognull
Wiederholungsversuche 3
# erneut versenden
maxconn 2000
Zeitüberschreitung 5000
klimatimeout 50000
Serverzeitüberschreitung 50000
hören Sie Webcluster 0.0.0.0:80
Option httpchk GET /index.html
Rundenturnier
Server inst1 192.168.1.61:80 überprüfen Sie Inter 2000 Fall 3
Server inst2 192.168.1.62:80 überprüfen Sie Inter 2000 Fall 3
Sie können nach jedem Server eine Gewichtung hinzufügen, um den Gewichtungswert festzulegen.
Server inst1 192.168.1.61:80 überprüfen Sie Inter 2000 Fall 3Gewicht 1
Server inst2 192.168.1.62:80 überprüfen Sie Inter 2000 Fall 3Gewicht 2
Erläuterung jeder Aussage
weltweit
Protokoll 127.0.0.1 local0 \Protokollierung konfigurieren,lokal0Ist das Protokollgerät, der Standardwert ist Systemprotokoll
Protokoll 127.0.0.1 local1 Hinweis \Die Protokollebene istbeachten
#log loghost local0 info
maxconn 4096 \Maximale Anzahl an Verbindungen
UID 99 \BenutzerBenutzerkennung
gid 99 \Benutzergid
Daemon \Als Daemon-Prozess ausführen
#debug \Debug-Modus, Startinformationen an die Standardausgabe ausgeben
#ruhig \Leiser Modus, keine Ausgabe beim Start
Vorgabewerte
log global \verwendenglobleProtokoll definiert in
Modus http \Der Modus isthttp
Option httplog \verwendenhttpDas Format der Protokollierung
Option dontlognull \sicherstellenHAProxyZeichnen Sie nicht die vom Load Balancer der oberen Ebene gesendeten Heartbeat-Pakete auf, um Statusdaten zu erkennen.
Wiederholungsversuche 3 \Überprüfen Sie die Anzahl der Knotenverbindungsfehler, die überschritten wird3Der Knoten gilt als nicht verfügbar
# erneut versenden\beim LadenWenn der Wert sehr hoch ist, werden Verbindungen, die über einen längeren Zeitraum in der aktuellen Warteschlange verarbeitet wurden, automatisch beendet.
maxconn 2000 \Maximale Anzahl an Verbindungen
Zeitüberschreitung 5000 \VerbindungszeitüberschreitungMS
klimatimeout 50000Client-TimeoutMS
Serverzeitüberschreitung 50000Server-TimeoutMS
hören Sie Webcluster 0.0.0.0:80 \Definieren Sie Cluster- und Überwachungsportnummern
Option httpchk GET /index.html \Überprüfen Sie die des ServersHauptseitedokumentieren,URL-Einstellungen für die Heartbeat-Erkennung
Bilanz-Roundrobin \Der Planungsalgorithmus für den Lastausgleich ist ein Round-Robin-Algorithmus
Server inst1 192.168.1.61:80 überprüfen inter 2000 Herbst 3 \Online-Knoten definieren
Server inst2 192.168.1.62:80 überprüfen Sie Inter 2000 Fall 3
Überprüfen Sie Inter 2000besteht darin, die Herzschlagfrequenz zu erkennen (jeden2000 msEinmal erkannt),Herbst 3Ja3Bei einem Ausfall gilt der Server als nicht verfügbar
In der neuen Version wurden die Timeout-Einstellungen wie folgt angepasst:
contimeout wird durch timeout connect ersetzt:Definieren Sie den Timeout-Zeitraum, den Haproxy auf die Weiterleitung von Client-Anfragen an den Backend-Server wartet
clitimeout wird durch timeout client ersetzt:Das Timeout für Client-Inaktivität ist die Zeit, die die App benötigt, um eine Verbindung zu Haproxy herzustellen
srvtimeout wird durch timeout server ersetzt:Nachdem der Client eine Verbindung mit dem Server hergestellt hat, ist die Wartezeit für den Server die Zeit, die Haproxy benötigt, um eine Verbindung zum Backend-Webserver herzustellen.
Notiz:
AbonnierenEs gibt acht Planungsalgorithmen
chroot /usr/share/haproxy \Das heißt, den Speicherort des Stammverzeichnisses zu ändern, auf den verwiesen wird, wenn das Programm ausgeführt wird. Wenn Sie über diesen Code verfügen, müssen Sie dieses Verzeichnis erstellen.
Über Protokollebenen
statische Ebene DEBUG
DEBUG Level weist darauf hin, dass feinkörnige Informationsereignisse für das Debuggen von Anwendungen sehr hilfreich sind.
statische Ebene INFO
Die INFO-Ebene gibt an, dass die Nachricht den laufenden Prozess der Anwendung auf einer grobkörnigen Ebene hervorhebt.
statischer Pegel WARN
Die Stufe WARN weist auf eine mögliche Fehlersituation hin.
statischer Level FEHLER
Die Stufe „FEHLER“ gibt an, dass ein Fehlerereignis zwar auftritt, sich jedoch nicht auf den weiteren Betrieb des Systems auswirkt.
statisches Niveau FATAL
Die Stufe FATAL gibt an, dass jedes schwerwiegende Fehlerereignis zum Beenden der Anwendung führt.
Darüber hinaus stehen zwei spezielle Protokollierungsstufen zur Verfügung:
statische Ebene ALLE
ALL Level ist die niedrigste Ebene und wird verwendet, um die gesamte Protokollierung zu aktivieren.
statischer Pegel AUS
OFF Level ist die höchste Stufe und wird verwendet, um die gesamte Protokollierung auszuschalten.
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy start
http://192.168.1.60/test.html
Aktualisieren Sie die Seite zum Testen
oder mit Skript testen
[root@localhost ~]# für i in $(seq 10); führe curl http://192.168.1.60/test.html aus; fertig
Haproxy zeichnet standardmäßig keine Protokolle auf. Zusätzlich zur Angabe der Protokollausgabe im globalen Abschnitt in haproxy.conf müssen Sie auch die Systemprotokollkonfigurationsdatei konfigurieren.
Methode eins:
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
weltweit
# Protokoll 127.0.0.1 local0
# log 127.0.0.1 local1 Hinweis
#log loghost local0 info
maxconn 4096
chroot /usr/share/haproxy
Flüssigkeit 99
99.
Daemon
#debuggen
#ruhig
log /dev/log local0 info
log /dev/log local0 Hinweis
[root@localhost haproxy-1.4.24]# touch /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
wenn ($programname == 'haproxy' und $syslogseverity-text == 'info') dann -/var/log/haproxy/haproxy-info.log
& ~
wenn ($programname == 'haproxy' und $syslogseverity-text == 'notice') dann -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# Dienst rsyslog neu starten
[root@localhost ~]#/etc/init.d/haproxy neu starten
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
Methode Zwei:
(1) Bearbeiten Sie /etc/haproxy/haproxy.conf
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
weltweit
Protokoll 127.0.0.1 local3
#local3 ist das Gerät, entsprechend der Konfiguration in /etc/rsyslog.conf, und die Protokollebene der Informationen wird standardmäßig recycelt.
(2) Schreiben Sie eine Haproxy-Protokolldatei
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~
Notiz:
$ModLoad imudpProtokoll UDP zum Sammeln von Protokollen
$UDPServerRun 514Geben Sie die Portnummer an, die für die Protokollerfassung verwendet wird
local3.* /var/log/haproxy.logGeben Sie den Speicherort für das Protokoll an
(3) Konfigurieren Sie die Hauptkonfigurationsdatei von rsyslog und aktivieren Sie die Remote-Protokollierung (optional).
[root@localhost ~]# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0″
#-c 2 Kompatibilitätsmodus verwenden, der Standardwert ist -c 5
#-r Remote-Protokollierung aktivieren
#-m 0 markiert den Zeitstempel.Die Einheit ist Minuten. Wenn sie 0 ist, bedeutet dies, dass die Funktion deaktiviert ist.
(4) Starten Sie die Haproxy- und Rsyslog-Dienste neu
[root@localhost ~]# systemctl rsyslog neu starten
[root@localhost ~]# systemctl restart haproxy
(5) Überprüfen Sie das Protokoll nach dem Besuch der Website
[root@localhost ~]# cat /var/log/haproxy.log
Erweiterung: Proxy-MySQL
hören Sie MySQL 0.0.0.0:3306
Server MySQL1 192.168.10.205:3306 Überprüfen Sie Port 3306 Maxconn 300