GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare HAProxy Load Balancer su Ubuntu 18.04 Bionic Beaver

In questo articolo, avremo spiegato i passaggi necessari per installare e configurare HAProxy Load Balancer su Ubuntu 18.04 LTS. Prima di continuare con questo tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo. Tutti i comandi in questo tutorial devono essere eseguiti come utente non root.

HAProxy è uno strumento Linux open source che fornisce servizi proxy e bilanciamento del carico ad alta disponibilità per applicazioni di rete basate su TCP e HTTP. Grazie alla sua facile integrazione nelle architetture esistenti, all'idoneità per siti Web ad alto traffico, all'estrema affidabilità e all'attenzione alla compatibilità verso l'alto, viene fornito per impostazione predefinita dalla maggior parte delle distribuzioni Linux tradizionali.

Installa HAProxy su Ubuntu

Passaggio 1. Dettagli di rete

Per semplicità, assumeremo i seguenti indirizzi IP e nomi host per le istanze:

  • haproxy-server :indirizzo IP pubblico 198.18.0.1
  • server-backend1 :indirizzo IP privato 172.16.0.1 , indirizzo IP pubblico 198.18.0.1
  • server-backend2 :indirizzo IP privato 172.16.0.2 , indirizzo IP pubblico 198.18.0.2

Passaggio 2. Innanzitutto, prima di iniziare a installare qualsiasi pacchetto sul tuo server Ubuntu, ti consigliamo sempre di assicurarti che tutti i pacchetti di sistema siano aggiornati.

sudo apt update
sudo apt upgrade

Passaggio 3. Installa HaProxy su Ubuntu 18.04 LTS.

HaProxy è disponibile nel repository del software Ubuntu, quindi possiamo installarlo utilizzando il gestore di pacchetti eseguendo il comando seguente:

sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy

Passaggio 4. Configurazione del bilanciamento del carico con HAProxy.

Ora modifica il file di configurazione predefinito di haproxy /etc/haproxy/haproxy.cfg e avvia la configurazione:

sudo nano /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256::RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

Quindi verso la fine del file, aggiungi il contenuto di seguito:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

Il parametro bind dice ad HaProxy di ascoltare la porta 80 per le connessioni. Alla fine del testo, abbiamo specificato ourwebsiteendpoint come la direttiva in cui si trovano i nostri endpoint. Ora possiamo andare avanti e aggiungere i dettagli di configurazione del back-end come segue:

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

Ora, se vuoi, puoi abilitare le statistiche Haproxy aggiungendo la seguente configurazione nel file di configurazione HAProxy:

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Passaggio 5. File di configurazione HAProxy finale.

Il file di configurazione finale potrebbe essere simile al seguente:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM$
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend ourwebsitefrontend
        bind *:80
        mode http
        default_backend ourwebsiteendpoint

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Quindi, riavvia il server HaProxy per ricaricare le modifiche:

sudo service haproxy restart

Passaggio 6. Verifica della configurazione.

In questa fase, abbiamo una configurazione HAProxy completamente funzionale. In ogni nodo del server web ho una pagina demo index.html che mostra il nome host dei server, così possiamo facilmente distinguere tra le pagine web dei server.

Ora accedi alla porta 80 su IP 198.18.0.1 (come configurato sopra) nel browser web e premi Aggiorna. Vedrai che HAProxy sta inviando le richieste al server back-end una per una (come per l'algoritmo round robin).

Questo è tutto ciò che devi fare per installare HAProxy Load su Ubuntu 18.04. Spero che tu possa trovare utile questo suggerimento rapido. Se hai domande o suggerimenti, sentiti libero di lasciare un commento qui sotto.


Ubuntu
  1. Come installare Ubuntu 18.04 Bionic Beaver

  2. Come installare e configurare il bilanciamento del carico HAProxy su Ubuntu 20.04

  3. Come installare GlassFish su Ubuntu 18.04 Bionic Beaver

  4. Come installare Netbeans su Ubuntu 18.04 Bionic Beaver

  5. Come installare Slack su Ubuntu 18.04 Bionic Beaver

Come installare Geany su Ubuntu 18.04 Bionic Beaver

Come installare Skype su Ubuntu 18.04 Bionic Beaver

Come installare GIMP su Ubuntu 18.04 Bionic Beaver

Come installare PyCharm su Ubuntu 18.04 Bionic Beaver

Come installare Ruby su Ubuntu 18.04 Bionic Beaver

Come installare Percona su Ubuntu 18.04 Bionic Beaver