GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat HAProxy Load Balancer na Ubuntu 18.04 Bionic Beaver

V tomto článku vysvětlíme nezbytné kroky k instalaci a konfiguraci HAProxy Load Balancer na Ubuntu 18.04 LTS. Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo. Všechny příkazy v tomto tutoriálu by měly být spouštěny jako uživatel bez oprávnění root.

HAProxy je linuxový nástroj s otevřeným zdrojovým kódem, který poskytuje vysokou dostupnost vyvažování zátěže a služby proxy pro síťové aplikace založené na TCP a HTTP. Díky své snadné integraci do stávajících architektur, vhodnosti pro weby s vysokou návštěvností, extrémní spolehlivosti a zaměření na vyšší kompatibilitu je standardně dodáván většinou mainstreamových linuxových distribucí.

Nainstalujte HAProxy na Ubuntu

Krok 1. Podrobnosti sítě

V zájmu jednoduchosti budeme u instancí předpokládat následující adresy IP a názvy hostitelů:

  • haproxy-server :veřejná IP adresa 198.18.0.1
  • backend-server1 :soukromá IP adresa 172.16.0.1 , veřejná IP adresa 198.18.0.1
  • backend-server2 :soukromá IP adresa 172.16.0.2 , veřejná IP adresa 198.18.0.2

Krok 2. Než začnete instalovat jakýkoli balíček na svůj server Ubuntu, vždy doporučujeme ujistit se, že jsou všechny systémové balíčky aktualizovány.

sudo apt update
sudo apt upgrade

Krok 3. Nainstalujte HaProxy na Ubuntu 18.04 LTS.

HaProxy je k dispozici v úložišti softwaru Ubuntu, takže jej můžeme nainstalovat pomocí správce balíčků spuštěním příkazu níže:

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

Krok 4. Konfigurace vyvažování zátěže pomocí HAProxy.

Nyní upravte výchozí konfigurační soubor haproxy /etc/haproxy/haproxy.cfg a spusťte konfiguraci:

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

Takže na konec souboru přidejte obsah níže:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

Parametr bind říká HaProxy, aby naslouchala na portu 80 pro připojení. Na konci textu jsme specifikovali ourwebsiteendpoint jako směrnici, kde jsou umístěny naše koncové body. Nyní můžeme pokračovat a přidat podrobnosti o konfiguraci backendu následovně:

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

Nyní, pokud chcete, můžete povolit statistiku Haproxy přidáním následující konfigurace do konfiguračního souboru HAProxy:

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

Krok 5. Konečný konfigurační soubor HAProxy.

Konečný konfigurační soubor může vypadat takto:

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

Poté restartujte server HaProxy a znovu načtěte změny:

sudo service haproxy restart

Krok 6. Testování konfigurace.

V této fázi máme plně funkční nastavení HAProxy. Na každém uzlu webového serveru mám ukázkovou stránku index.html zobrazující název hostitele serverů, takže můžeme snadno rozlišovat mezi webovými stránkami serverů.

Nyní přejděte k portu 80 na IP 198.18.0.1 (jak je nakonfigurováno výše) ve webovém prohlížeči a stiskněte tlačítko Obnovit. Uvidíte, že HAProxy odesílá požadavky na backend server jeden po druhém (podle kruhového algoritmu).

To je vše, co potřebujete k instalaci HAProxy Load na Ubuntu 18.04. Doufám, že vám tento rychlý tip pomůže. Pokud máte dotazy nebo návrhy, neváhejte zanechat komentář níže.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat nástroj pro vyrovnávání zatížení HAProxy na Ubuntu 20.04

  2. Jak nainstalovat Netbeans na Ubuntu 18.04 Bionic Beaver

  3. Jak nainstalovat Slack na Ubuntu 18.04 Bionic Beaver

  1. Jak nainstalovat Ubuntu 18.04 Bionic Beaver

  2. Jak nainstalovat Kodi na Ubuntu 18.04 Bionic Beaver

  3. Jak nainstalovat GlassFish na Ubuntu 18.04 Bionic Beaver

  1. Jak nainstalovat Pip na Ubuntu 18.04 Bionic Beaver

  2. Jak nainstalovat OpenVPN na Ubuntu 18.04 Bionic Beaver

  3. Jak nainstalovat Node.js na Ubuntu 18.04 Bionic Beaver