V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat HAProxy na Ubuntu 16.04 LTS. Pro ty z vás, kteří to nevěděli, HAProxy je bezplatný nástroj pro vyrovnávání zatížení HTTP/TCP a proxy server. Šíří požadavky mezi více serverů za účelem zmírnění problémů způsobených selháním jediného serveru. HA Proxy používá řada vysoce profilovaných webů včetně GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter a Tuenti a se používá v produktu OpsWorks od Amazon Web Services.
Tento článek předpokládá, že máte alespoň základní znalosti Linuxu, víte, jak používat shell, a co je nejdůležitější, hostujete svůj web na vlastním VPS. Instalace je poměrně jednoduchá a předpokládá, že běží v účtu root, pokud ne, možná budete muset přidat 'sudo
‘ k příkazům pro získání oprávnění root. Ukážu vám krok za krokem instalaci HAProxy na server Ubuntu 16.04 (Xenial Xerus).
Nainstalujte HAProxy na Ubuntu 16.04 LTS
Krok 1. Nejprve se ujistěte, že všechny vaše systémové balíčky jsou aktuální spuštěním následujícího apt-get
příkazy v terminálu.
sudo apt-get aktualizacesudo apt-get upgrade
Krok 2. Podrobnosti sítě.
Níže je náš síťový server. Existují 3 webové servery běžící s Apache2 a naslouchající na portu 80 a jeden HAProxy server:
Krok 3. Instalace HAProxy.
Nyní nainstalujte HAProxy pomocí následujícího příkazu:
apt-get -y install haproxy
Po instalaci můžete znovu zkontrolovat číslo nainstalované verze pomocí následujícího:
haproxy -v
Krok 4. Konfigurace HAProxy.
Musíme upravit konfigurační soubor HAProxy, tj. /etc/haproxy/haproxy.cfg
dle našeho požadavku. (Tuto konfiguraci změňte podle požadavků sítě). Další podrobnosti o konfiguraci naleznete na této adrese URL.
### nano /etc/haproxy/haproxy.cfgglobal log /dev/log local0 log /dev/log local1 oznámení chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock úroveň admin 660 časový limit 30s haproxy uživatele skupina haproxy daemon # Výchozí umístění materiálů SSL ca-base /etc/ssl/certs crt-base /etc/ssl/private # Výchozí šifry pro použití na naslouchacích soketech s podporou SSL. # Další informace naleznete v tématu šifry (1SSL). Tento seznam pochází z: # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256::RSA+ AES:RSA+3DES :! AULL :! MD5 :! DSS SSL-Default-Bind-Options No-Slv3Defaults Log Global režim HTTP Možnost httplog dontlogll timeout timeout 5000 Timeout klient 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 500 http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.httpfrontend Local_Server bind 192.168.1.16:80 režim http režim režim režim režim vpřed zaokrouhlení webový server výchozí výchozí backend My_Web_Server -Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } možnost httpchk HEAD / HTTP/1.1rnHost:localhost server web1.idroot.us 192.168.1.101:80 server web2.idroot.us 192.168.1.102:80 server web3.idroot.us39 statistika 31 stat. 81 192 hide-version stats refresh 30s stats show-node stats auth username:password stats uri /stats
Protože jste provedli všechny potřebné konfigurace pro proxy server, ověřte konfigurační soubor před restartováním služby pomocí následujícího příkazu:
haproxy -c -f /etc/haproxy/haproxy.cfg
Pokud výše uvedený příkaz vrátí výstup jako „konfigurační soubor je platný“, restartujte službu HAProxy:
systemctl restart haproxy
Krok 5. Přístup k HAProxy.
Otevřete svůj oblíbený prohlížeč a přistupte k portu 80 na IP 192.168.0.16 (jak je nakonfigurováno výše) ve webovém prohlížeči a stiskněte tlačítko refresh. Uvidíte, že HAProxy odesílá požadavky na backendový server jeden po druhém (podle algoritmu round-robin).
Blahopřejeme! Úspěšně jste nainstalovali HAProxy. Děkujeme, že jste použili tento návod k instalaci vyrovnávání zátěže HAProxy v systému Ubuntu 16.04 LTS (Xenial Xerus). Další nápovědu nebo užitečné informace naleznete oficiální webové stránky HAProxy.