
In questo tutorial, ti mostreremo come installare HAProxy su CentOS 8. Per chi non lo sapesse, HAProxy è un proxy e bilanciatore di carico HTTP/TCP gratuito ad alta disponibilità server. Diffonde le richieste tra più server per mitigare i problemi derivanti da un singolo errore del server. HA Proxy è utilizzato da numerosi siti Web di alto profilo tra cui GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter e Tuenti, e viene utilizzato nel prodotto OpsWorks da Amazon Web Services.
Questo articolo presuppone che tu abbia almeno una conoscenza di base di Linux, sappia come usare la shell e, soprattutto, che ospiti il tuo sito sul tuo VPS. L'installazione è abbastanza semplice e presuppone che tu sono in esecuzione nell'account root, in caso contrario potrebbe essere necessario aggiungere 'sudo ' ai comandi per ottenere i privilegi di root. Ti mostrerò l'installazione passo passo di HAProxy su CentOS 8.
Prerequisiti
- Un server che esegue uno dei seguenti sistemi operativi:CentOS 8.
- Si consiglia di utilizzare una nuova installazione del sistema operativo per prevenire potenziali problemi.
- Accesso SSH al server (o semplicemente apri Terminal se sei su un desktop).
- Un
non-root sudo usero accedere all'root user. Ti consigliamo di agire comenon-root sudo user, tuttavia, poiché puoi danneggiare il tuo sistema se non stai attento quando agisci come root.
Installa HAProxy su CentOS 8
Passaggio 1. Innanzitutto, iniziamo assicurandoci che il tuo sistema sia aggiornato.
sudo clean all sudo dnf update
Passaggio 2. Installazione di HAProxy su CentOS 8.
HAProxy è disponibile su CentOS 8 predefinito, ora usa il seguente dnf un comando per installare HAProxy:
sudo dnf install haproxy
Passaggio 3. Configurazione di HAProxy.
Creeremo un file di configurazione /etc/haproxy/haproxy.cfg contenente le impostazioni e le configurazioni necessarie:
sudo nano /etc/haproxy/haproxy.cfg
Inserisci quanto segue nel file:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend main
bind *:5000
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static
default_backend app
backend static
balance roundrobin
server static 127.0.0.1:4331 check
backend app
balance roundrobin
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check Puoi visualizzare i dettagli di configurazione e ulteriori informazioni controlla questo URL. Dopo aver configurato HAProxy, è ora di avviare il servizio:
sudo systemctl start haproxy sudo systemctl enable haproxy
Passaggio 4. Configura Firewall.
Aggiungeremo HAProxy al firewall CentOS 8 e aggiorneremo le regole con i seguenti comandi:
sudo firewall-cmd --add-port=8088/tcp --permanent sudo firewall-cmd --reload
Passaggio 5. Configurare la registrazione HAProxy.
Per configurare la registrazione standard HAProxy, modifica /etc/rsyslog.conf e abilita la ricezione UDP Syslog sulla porta 514:
sudo nano /etc/rsyslog.conf
... # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") ... *.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages local2.* /var/log/haproxy.log ...
Quindi, salva il file di configurazione ed esegui il comando seguente per verificare la presenza di eventuali errori:
rsyslogd -N1 sudo systemctl restart rsyslog haproxy
Passaggio 6. Configura Apache X-Forwarded-For Logging sui server backend.
Ora accediamo ai server back-end e configuriamo Apache per registrare le intestazioni X-Forwarded-For. La riga predefinita che stiamo cambiando è:
...
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
... Modifica questa riga in modo che assomigli a:
...
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
... Salva il file e riavvia Apache:
apachectl configtest sudo systemctl restart httpd
Passaggio 7. Test di HAProxy Load Balancer.
Per verificare che HAProxy sia in grado di bilanciare il carico delle richieste HTTP, accedere al browser e accedere a HAProxy utilizzando il nome host o l'indirizzo IP.
Congratulazioni! Hai installato HAProxy con successo. Grazie per aver utilizzato questo tutorial per installare HAProxy sui tuoi sistemi CentOS 8. Per ulteriore aiuto o informazioni utili, ti consigliamo di controllare il sito Web ufficiale di HAProxy.