GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Ansible zum Konfigurieren eines Reverse-Proxys

Was ist ein Load Balancer ? Ein Load Balancer ist eine effiziente Möglichkeit, den Netzwerkverkehr auf verschiedene Backend-Server zu verteilen. Es wird auch als Serverfarm oder Serverpool bezeichnet. Es verteilt Client-Anfragen oder Netzwerklast auf Ziel-Webserver. Load Balancer arbeiten nach dem Round-Robin-Konzept, das eine hohe Zuverlässigkeit und Verfügbarkeit gewährleistet.

Ein Szenario

Sie haben einen Webserver, der 100 Clients gleichzeitig verwalten kann. Plötzlich steigen die Anfragen an diesen bestimmten Server um 100 Prozent. Es ist wahrscheinlich, dass die Website abstürzt oder beendet wird. Um diese Situation zu vermeiden, richten Sie einen Zielwebserver ein. In diesem Szenario wechselt der Client nie zum Zielwebserver. Stattdessen geht ihre Anfrage an den Master-Server und der Master-Server sendet die Anfrage an den Ziel-Webserver. Wenn der Ziel-Webserver dem Master-Webserver antwortet, der als Reverse-Proxy bezeichnet wird.

[Das könnte Ihnen auch gefallen: Verwandeln Sie eine Kubernetes-Bereitstellung in einen Knative-Dienst]

HAProxy als Proxy verwenden

Der Port auf dem Hauptwebserver wird als Frontend-Port bezeichnet. HAProxy ist ein HTTP-Load-Balancer, der als Reverse-Proxy konfiguriert werden kann. Hier sehen wir uns an, wie ich HAProxy mithilfe eines Ansible-Playbooks konfiguriert habe.

Überprüfen Sie das System, in dem Sie HAProxy konfigurieren müssen

HAProxy ist auf diesem System nicht installiert. Sie können dies mit dem folgenden Befehl bestätigen:

rpm -q haproxy

Schritte zum Konfigurieren von HAProxy

Schritt 1 – HAProxy installieren

Um HAProxy zu installieren, müssen Sie ein Paket verwenden Modul, in dem Sie den Namen des Dienstes angeben, den Sie installieren möchten:

    - name: "Configure Load balancer"
      package:
        name: haproxy

Schritt 2 – Kopieren Sie die Konfigurationsdatei für den Reverse-Proxy

Kopieren Sie die Konfigurationsdatei, damit Sie sie ändern können:

cp /etc/haproxy/haproxy.cfg  /root/ws1/haproxy.cfg

Schritt 3 – Front-End-Port ändern und Back-End-IPs zuweisen

Standardmäßig ist das Frontend an Port 5000 gebunden. Ich habe die Portnummer auf 8080 geändert. Ich habe auch einen for angewendet Schleife, um die Back-End-IP zu konfigurieren. Jetzt können Sie beliebig viele Webserver starten und müssen die IP-Adresse nicht manuell in /etc/httpd/httpd.conf konfigurieren . Die IP-Adresse wird automatisch aus dem Inventar abgerufen.

backend app
   balance     roundrobin
{%  for i in groups ["web"] %}
   server  app1{{ loop.index }} {{ i}}:80 check
{% endfor %}

Schritt 4 – Kopieren Sie haproxy.cfg auf den verwalteten Knoten

Mit Vorlage kopieren Sie die Konfigurationsdatei für HAProxy vom Controller-Knoten auf den verwalteten Knoten:

    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"

Schritt 5 – Dienst starten

Nutzen Sie den Dienst Modul zum Starten des HAProxy-Dienstes:

    - service:
        name: "haproxy"
        state: restarted

Überprüfen Sie das System, auf dem Sie den httpd-Webserver installieren müssen

Zum Testen der HAProxy-Konfiguration konfigurieren Sie auch httpd auf Ihrem Zielknoten mit Hilfe von Ansible. Um zu prüfen, ob Sie httpd noch nicht haben Verwenden Sie auf Ihrem System den folgenden Befehl:

 rpm -q httpd

Schritt 1 – httpd installieren

Das Paket Modul wird verwendet, um httpd zu installieren auf dem verwalteten Knoten:

    - name: "HTTPD CONFIGURE"
      package:
        name: httpd

Schritt 2 – Webseite kopieren

Die Vorlage Modul wird verwendet, um Ihre Webseite von der Quelle zum Ziel zu kopieren:

    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"

Schritt 3 – Dienst starten

Der Dienst -Modul wird verwendet, um den httpd zu starten Dienst:

    - service:
        name: "haproxy"
        state: restarted

Vervollständigen Sie das Playbook, um den Reverse-Proxy zu konfigurieren

In diesem Playbook haben Sie zwei verschiedene Hosts mit zwei verschiedenen Gruppen. Eine Gruppe ist für den Webserver und eine andere für den 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

Führen Sie das Playbook aus

ansible-playbook haproxy.yml

Ausgabe

Das Playbook wird erfolgreich ausgeführt und der Hauptwebserver kann mithilfe eines Load Balancers auf die beiden Zielwebserver zugreifen.

[ Suchen Sie nach mehr Informationen zur Systemautomatisierung? Beginnen Sie mit The Automated Enterprise, einem kostenlosen Buch von Red Hat. ] 

Schlussfolgerung

Der Load Balancer und der Reverse Proxy wurden nun von Ansible konfiguriert. Sie können Ihren Webdiensten eine Schutz- und Verfügbarkeitsebene hinzufügen, indem Sie HAProxy zu Ihrer Infrastruktur hinzufügen. Sehen Sie sich unbedingt die Dokumentation für Ihr spezifisches Ziel an, um mehr zu erfahren.


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So konfigurieren Sie den HAProxy-Load-Balancer

  3. So verwenden Sie Ansible zum Installieren und Konfigurieren von Redis 6 unter Ubuntu 20.04

  4. So verwenden Sie Ansible zum Installieren und Konfigurieren von Redis 6 unter Debian 11

  5. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Debian 11

Wie konfiguriere ich den Nginx-Reverse-Proxy auf Plesk?

So konfigurieren Sie IIS in Windows Server 2012

So konfigurieren Sie DNS in Windows Server 2012

So konfigurieren Sie NGINX auf einem CentOS 7-Server

So installieren Sie Ansible Server unter Ubuntu 18.04

So richten Sie HAProxy unter CentOS 8 ein