Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Konfiguration des Lastausgleichs des virtuellen Nginx-Hosts, um eine Verteilung des Datenverkehrs auf mehrere Domänen zu erreichen

Konfiguration des Lastausgleichs des virtuellen Nginx-Hosts, um eine Verteilung des Datenverkehrs auf mehrere Domänen zu erreichen

PHPz
PHPzOriginal
2023-07-08 12:49:441774Durchsuche

Nginx-Lastausgleichskonfiguration für virtuelle Hosts, um eine Verteilung des Datenverkehrs auf mehrere Domänen zu erreichen

Einführung:
In modernen Netzwerkanwendungen ist der Lastausgleich ein wichtiger Faktor zur Verbesserung der Systemstabilität und -leistung. Als Hochleistungs-Webserver kann Nginx seine leistungsstarke Lastausgleichsfunktion nutzen, um eine Verkehrsverteilung über mehrere Domänen hinweg zu erreichen. In diesem Artikel wird erläutert, wie Sie den Lastausgleich für virtuelle Nginx-Hosts konfigurieren, um eine Verkehrsverteilung auf mehrere Domänennamen zu erreichen.

1. Grundlegende Umgebungsvorbereitung:
Bevor wir beginnen, müssen wir sicherstellen, dass Nginx installiert wurde und über die folgenden Grundelemente verfügt:

  1. Mehrere Domänennamen verweisen auf dieselbe Server-IP;
  2. Jeder Domänenname wurde installiert in Nginx in der Konfigurationsdatei konfiguriert.

2. Konfigurationsschritte für den Lastausgleich des virtuellen Nginx-Hosts:

  1. Erstellen Sie eine neue Konfigurationsdatei vhost.conf:
    Erstellen Sie im Nginx-Konfigurationsverzeichnis eine neue Datei mit dem Namen vhost.conf und fügen Sie sie in die Datei ein. Fügen Sie Folgendes hinzu Inhalt:

    http {
     upstream backend {
         server backend1.example.com;
         server backend2.example.com;
         server backend3.example.com;
     }
    
     server {
         listen 80;
         server_name example.com;
    
         location / {
             proxy_pass http://backend;
         }
     }
    }

    In dieser Konfigurationsdatei definieren wir einen Lastausgleichscluster mit dem Namen Backend, wobei backend1.example.com, backend2.example.com, backend3.example.com die Domänennamen der Backend-Server oder die IP-Adresse sind. Im Serverblock geben wir an, Port 80 abzuhören und alle Anfragen an den Backend-Cluster weiterzuleiten.

  2. Ändern Sie die Hauptkonfigurationsdatei nginx.conf:
    Öffnen Sie die Hauptkonfigurationsdatei nginx.conf von Nginx und fügen Sie den folgenden Inhalt zur Include-Anweisung im http-Block hinzu:

    http {
     ...
     include /path/to/vhost.conf;
     ...
    }

    Ersetzen Sie /path/to/vhost.conf durch The tatsächlicher vhost.conf-Dateipfad.

  3. Nginx-Konfiguration neu laden:
    Speichern Sie die Änderungen an den Dateien vhost.conf und nginx.conf und führen Sie den folgenden Befehl aus, um die Nginx-Konfigurationsdatei neu zu laden:

    nginx -s reload

3. Testen und Verifizieren:
Nach Abschluss der obige Konfiguration, Wir können die folgenden Schritte testen und überprüfen:

  1. Ändern Sie die lokale Hosts-Datei:
    Ändern Sie die Auflösungsadresse von example.com in die IP-Adresse des Nginx-Servers. In Windows-Systemen befindet sich die Hosts-Datei in C:WindowsSystem32driversetchosts. In Linux-Systemen befindet sich die Hosts-Datei in /etc/hosts.
  2. Besuchen Sie den Testdomänennamen im Browser:
    Geben Sie http://example.com in den Browser ein und aktualisieren Sie dann die Seite mehrmals, um zu beobachten, ob die Anfrage normal an den Backend-Server verteilt wird. Wenn alles gut geht, werden Sie sehen, dass mehrere Backend-Server abwechselnd auf Anfragen antworten.

4. Andere häufig verwendete Konfigurationsoptionen:
Zusätzlich zur grundlegenden Lastausgleichskonfiguration bietet Nginx auch viele andere Konfigurationsoptionen, um unterschiedliche Anforderungen zu erfüllen. Im Folgenden finden Sie Beispiele für einige häufig verwendete Konfigurationsoptionen:

  1. Gewichtungskonfiguration:

    upstream backend {
     server backend1.example.com weight=3;
     server backend2.example.com weight=2;
     server backend3.example.com;
    }

    In diesem Beispiel legen wir die Gewichtung verschiedener Backend-Server über den Gewichtungsparameter fest. Servern mit höherer Gewichtung wird mehr Datenverkehr zugewiesen.

  2. IP-Failover:

    upstream backend {
     ip_hash;
     server backend1.example.com;
     server backend2.example.com;
     server backend3.example.com;
    }

    Durch die Konfiguration des Parameters ip_hash führt Nginx ein Failover basierend auf der angeforderten IP-Adresse durch, d. h. Anfragen für dieselbe IP werden immer an denselben Backend-Server verteilt.

  3. Gesundheitsprüfung:

    http {
     upstream backend {
         server backend1.example.com max_fails=2 fail_timeout=30s;
         server backend2.example.com;
         server backend3.example.com;
     }
    }

    Durch die Konfiguration der Parameter „max_fails“ und „fail_timeout“ kann Nginx Gesundheitsprüfungen auf dem Backend-Server durchführen, die max_fails hintereinander ausfallen, wird der Parameter „fail_timeout“ vorübergehend als nicht verfügbar markiert Folgendes: Das Zeitintervall zwischen den Versuchen.

Fazit:
Die Konfiguration des virtuellen Host-Lastausgleichs von Nginx ist ein wichtiger Teil der Realisierung der Verkehrsverteilung auf mehrere Domänen. Durch eine angemessene Konfiguration können wir die Verfügbarkeit und Leistung des Systems verbessern. Dieser Artikel enthält ein grundlegendes Beispiel für die Lastausgleichskonfiguration und stellt einige gängige Konfigurationsoptionen vor. Leser können die Konfiguration flexibel an die tatsächlichen Bedürfnisse anpassen, um ihren eigenen Geschäftsanforderungen gerecht zu werden. Ich hoffe, dieser Artikel wird Ihnen bei der Konfiguration des Lastausgleichs für virtuelle Nginx-Hosts hilfreich sein.

Das obige ist der detaillierte Inhalt vonKonfiguration des Lastausgleichs des virtuellen Nginx-Hosts, um eine Verteilung des Datenverkehrs auf mehrere Domänen zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn