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 user
o 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.