Co je to vyrovnávač zatížení ? Nástroj pro vyrovnávání zatížení je účinný způsob, jak distribuovat síťový provoz mezi různé backendové servery. Je také známý jako serverová farma nebo serverový fond. Distribuuje požadavky klientů nebo zatížení sítě na cílové webové servery. Vyvažovače zátěže pracují na konceptu round-robin, který zajišťuje vysokou spolehlivost a dostupnost.
Jeden scénář
Máte webový server, který dokáže spravovat 100 klientů najednou. Najednou se požadavky na tento konkrétní server zvýší o 100 procent. Je pravděpodobné, že web spadne nebo bude ukončen. Chcete-li se této situaci vyhnout, nastavte cílový webový server. V tomto scénáři klient nikdy nepřejde na cílový webový server. Místo toho jejich požadavek jde na hlavní server a hlavní server odešle požadavek na cílový webový server. Když cílový webový server odpoví hlavnímu webovému serveru, který je známý jako reverzní proxy.
[ Také by se vám mohlo líbit: Změňte nasazení Kubernetes na službu Knative ]
Použití HAProxy jako proxy
Port na hlavním webovém serveru se nazývá frontend port. HAProxy je nástroj pro vyrovnávání zatížení HTTP, který lze nakonfigurovat jako reverzní proxy. Zde se podíváme na to, jak jsem nakonfiguroval HAProxy pomocí příručky Ansible.
Zkontrolujte systém, kde potřebujete nakonfigurovat HAProxy
HAProxy není v tomto systému nainstalován. Můžete to potvrdit následujícím příkazem:
rpm -q haproxy
Postup konfigurace HAProxy
Krok 1 – Instalace HAProxy
Chcete-li nainstalovat HAProxy, musíte použít balíček modul, kde zadáte název služby, kterou chcete nainstalovat:
- name: "Configure Load balancer"
package:
name: haproxy
Krok 2 – Zkopírujte konfigurační soubor pro reverzní proxy
Zkopírujte konfigurační soubor, abyste jej mohli upravit:
cp /etc/haproxy/haproxy.cfg /root/ws1/haproxy.cfg
Krok 3 – Změňte frontendový port a přiřaďte backendové IP adresy
Ve výchozím nastavení je frontend vázán na port 5000. Změnil jsem číslo portu na 8080. Také jsem použil for
smyčka pro konfiguraci backendové IP. Nyní můžete spustit tolik webových serverů, kolik potřebujete, a není třeba ručně konfigurovat IP v /etc/httpd/httpd.conf
. Automaticky načte IP z inventáře.
backend app
balance roundrobin
{% for i in groups ["web"] %}
server app1{{ loop.index }} {{ i}}:80 check
{% endfor %}
Krok 4 – Zkopírujte soubor haproxy.cfg do spravovaného uzlu
Pomocí šablony režimu, zkopírujte konfigurační soubor pro HAProxy z uzlu řadiče do spravovaného uzlu:
- template:
dest: "/etc/haproxy/haproxy.cfg"
src: "/root/ws1/haproxy.cfg"
Krok 5 – Spusťte službu
Použijte službu modul pro spuštění služby HAProxy:
- service:
name: "haproxy"
state: restarted
Zkontrolujte systém, kam potřebujete nainstalovat webový server httpd
Pro testování konfigurace HAProxy nakonfigurujete také httpd
na vašem cílovém uzlu s pomocí Ansible. Chcete-li zkontrolovat, zda již nemáte httpd
ve vašem systému použijte následující příkaz:
rpm -q httpd
Krok 1 – Nainstalujte httpd
Balík modul se používá k instalaci httpd
na spravovaném uzlu:
- name: "HTTPD CONFIGURE"
package:
name: httpd
Krok 2 – Zkopírujte webovou stránku
Šablona modul se používá ke zkopírování vaší webové stránky ze zdroje do cíle:
- template:
dest: "/var/www/html/index.html"
src: "/root/ws1/haproxy.html"
Krok 3 – Spusťte službu
služba modul se používá ke spuštění httpd
služba:
- service:
name: "haproxy"
state: restarted
Dokončením příručky nakonfigurujte reverzní proxy
V této příručce máte dva různé hostitele se dvěma různými skupinami. Jedna skupina je pro webový server a druhá je pro load balancer:
---
- hosts: web
tasks:
- name: "HTTPD CONFIGURE"
package:
name: httpd
- template:
dest: "/var/www/html/index.html"
src: "/root/ws1/haproxy.html"
- service:
name: "httpd"
state: restarted
- hosts: lb
tasks:
- name: "Configure Load balancer"
package:
name: haproxy
- template:
dest: "/etc/haproxy/haproxy.cfg"
src: "/root/ws1/haproxy.cfg"
- service:
name: "haproxy"
state: restarted
Spusťte příručku
ansible-playbook haproxy.yml
Výstup
Příručka běží úspěšně a ke dvěma cílovým webovým serverům má hlavní webový server přístup pomocí nástroje pro vyrovnávání zatížení.
[ Hledáte více o automatizaci systému? Začněte s The Automated Enterprise, bezplatnou knihou od Red Hat. ]
Závěr
Nástroj pro vyrovnávání zatížení a reverzní proxy byly nyní nakonfigurovány společností Ansible. Do svých webových služeb můžete přidat vrstvu ochrany a dostupnosti přidáním HAProxy do infrastruktury. Chcete-li se dozvědět více, podívejte se do dokumentace pro váš konkrétní cíl.