le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: Panoramica del caso
2: Conoscenza pre-caso
3: Ambiente del caso
[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 ##Avvia il processo 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]# crea TARGET=linux26
[root@localhost haproxy-1.5.19]# esegui l'installazione
Nota:
linux22 per Linux 2.2
linux24 per Linux 2.4 e versioni successive (predefinito)
linux24e per Linux 2.4 con supporto per un epoll funzionante (> 0.21)
linux26 per Linux 2.6 e versioni successive
solaris per Solaris 8 o 10 (altri non testati)
freebsd per FreeBSD 5 a 8.0 (altri non testati)
openbsd per OpenBSD 3.1 a 4.6 (altri non testati)
cygwin per Cygwin
generico per qualsiasi altro sistema operativo.
personalizzato per regolare manualmente ogni impostazione
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp esempi/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# cp esempi/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) Introduzione alla configurazione Haproxy
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
globaleeee
registro 127.0.0.1 locale0
registro 127.0.0.1 avviso locale1
#log loghost informazioni locali0
maxconn 4096
UID 99
gid 99
demone
#debug
#Tranquillo
valori predefiniti
registro globale
modalità http
opzione httplog
opzione dontlognull
riprova 3
# ridispaccio
maxconn 2000
tempo di permanenza 5000
tempo di attesa 50000
timeout servizio 50000
ascolta webcluster 0.0.0.0:80
opzione httpchk GET /index.html
equilibrio roundrobin
server inst1 192.168.1.61:80 controlla inter 2000 fall 3
server inst2 192.168.1.62:80 controlla inter 2000 fall 3
È possibile aggiungere peso dopo ciascun server per impostare il valore del peso.
server inst1 192.168.1.61:80 controlla inter 2000 fall 3peso 1
server inst2 192.168.1.62:80 controlla inter 2000 fall 3peso 2
Spiegazione di ogni affermazione
globaleeee
registro 127.0.0.1 locale0 \configurare la registrazione,locale0È il dispositivo di registro, l'impostazione predefinita è il registro di sistema
registro 127.0.0.1 local1 avviso \Il livello di registro èavviso
#log loghost informazioni locali0
maxconn 4096 \Numero massimo di connessioni
uid 99 \utentefluido
gid 99 \utentegiretto
demone \Esegui come processo demone
#debug \Modalità debug, visualizza le informazioni di avvio sull'output standard
#Tranquillo \Modalità silenziosa, nessuna uscita all'avvio
valori predefiniti
registro globale \utilizzoglobaleregistro definito in
modalità http \La modalità èhttp
opzione httplog \utilizzohttpIl formato della registrazione
opzione dontlognull \garantireProxyHaNon registrare i pacchetti heartbeat inviati dal sistema di bilanciamento del carico di livello superiore per rilevare i dati sullo stato.
tentativi 3 \Controllare il numero di errori di connessione del nodo che supera3Il nodo è considerato non disponibile
# ridispaccio\quando caricoQuando il valore è molto alto, le connessioni elaborate nella coda corrente per un lungo periodo verranno interrotte automaticamente.
maxconn 2000 \Numero massimo di connessioni
tempo di permanenza 5000 \Connesione finitaSM
tempo di attesa 50000Timeout del clienteSM
timeout servizio 50000Timeout del serverSM
ascolta webcluster 0.0.0.0:80 \Definire i numeri del cluster e delle porte di ascolto
opzione httpchk GET /index.html \Controlla quelli del serverindice.htmldocumento,Impostazioni URL di rilevamento del battito cardiaco
equilibrio roundrobin \L'algoritmo di pianificazione del bilanciamento del carico è round robin
server inst1 192.168.1.61:80 controlla inter 2000 fall 3 \Definire i nodi online
server inst2 192.168.1.62:80 controlla inter 2000 fall 3
controlla inter 2000è quello di rilevare la frequenza del battito cardiaco (ogni2000 millisecondiRilevato una volta),caduta 3SÌ3Il server è considerato non disponibile in caso di guasto
Nella nuova versione, le impostazioni di timeout sono state modificate come segue:
contimeout è sostituito da timeout connect:Definire il periodo di timeout che haproxy attende per inoltrare le richieste del client al server backend
clitimeout è sostituito dal client timeout:Il periodo di timeout per l'inattività del client è il tempo necessario all'app per connettersi a haproxy
srvtimeout è sostituito dal server timeout:Dopo che il client ha stabilito una connessione con il server, il periodo di timeout di attesa del server è il tempo impiegato da Haproxy per connettersi al server Web backend.
Nota:
haproxyEsistono otto algoritmi di pianificazione
chroot /usr/condividi/haproxy \Cioè per cambiare la posizione della directory root a cui si fa riferimento quando il programma viene eseguito. Se hai questo codice, devi creare questa directory.
Informazioni sui livelli di registro
Livello statico DEBUG
DEBUG Level sottolinea che gli eventi informativi a grana fine sono molto utili per il debug delle applicazioni.
INFO livello statico
Il livello INFO indica che il messaggio evidenzia il processo in esecuzione dell'applicazione a un livello di grana grossa.
Livello statico AVVISO
Il livello WARN indica una potenziale situazione di errore.
ERRORE di livello statico
Il livello ERRORE indica che, sebbene si verifichi un evento di errore, esso non influisce comunque sul funzionamento continuo del sistema.
Livello statico FATALE
Il livello FATAL indica che ogni evento di errore grave provocherà la chiusura dell'applicazione.
Inoltre, sono disponibili due livelli di registrazione speciali:
Livello statico TUTTI
ALL Level è il livello più basso e viene utilizzato per attivare tutte le registrazioni.
Livello statico OFF
OFF Level è il livello più alto e viene utilizzato per disattivare tutta la registrazione.
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy avvio
http://192.168.1.60/test.html
Aggiorna la pagina per testare
o prova usando lo script
[root@localhost ~]# per i in $(seq 10); esegui curl http://192.168.1.60/test.html ;fatto
Haproxy non registra i log per impostazione predefinita Oltre a specificare l'output del log nella sezione globale in haproxy.conf, è necessario configurare anche il file di configurazione del log di sistema.
metodo uno:
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
globaleeee
# registra 127.0.0.1 local0
# log 127.0.0.1 local1 avviso
#log loghost informazioni locali0
maxconn 4096
chroot /usr/share/haproxy
UID 99
gid 99
demone
#debug
#Tranquillo
log /dev/log informazioni locali0
log /dev/log local0 avviso
[root@localhost haproxy-1.4.24]# tocca /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
se ($programname == 'haproxy' e $syslogseverity-text == 'info') allora -/var/log/haproxy/haproxy-info.log
& ~
se ($programname == 'haproxy' e $syslogseverity-text == 'notice') allora -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# riavvio del servizio rsyslog
[root@localhost ~]#/etc/init.d/haproxy riavvia
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
Metodo due:
(1) Modificare /etc/haproxy/haproxy.conf
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
globaleeee
registro 127.0.0.1 locale3
#local3 è il dispositivo, corrispondente alla configurazione in /etc/rsyslog.conf, e il livello di informazioni del registro viene riciclato per impostazione predefinita.
(2) Scrivere il file di registro haproxy
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~
Nota:
$ModLoad imudpProtocollo UDP per la raccolta dei log
$UDPServerRun 514Specificare il numero di porta utilizzato per la raccolta dei registri
local3.* /var/log/haproxy.logSpecificare il percorso di archiviazione del registro
(3) Configurare il file di configurazione principale di rsyslog e abilitare la registrazione remota (opzionale)
[root@localhost ~]# vim /etc/sysconfig/rsyslog
OPZIONI_SYSLOGD=”-c 2 -r -m 0″
#-c 2 Usa la modalità compatibilità, il valore predefinito è -c 5
#-r Abilita la registrazione remota
#-m Timestamp con contrassegno 0.L'unità è minuti. Quando è 0, significa che la funzione è disabilitata.
(4) Riavviare i servizi haproxy e rsyslog
[root@localhost ~]# systemctl riavvia rsyslog
[root@localhost ~]# systemctl riavvia haproxy
(5) Controllare il registro dopo aver visitato il sito web
[root@localhost ~]# cat /var/log/haproxy.log
Estensione: proxy mysql
ascolta mysql 0.0.0.0:3306
server mysql1 192.168.10.205:3306 controlla porta 3306 maxconn 300