Implementierung der Nginx-Lastverteilung/SSL-Konfiguration

Implementierung der Nginx-Lastverteilung/SSL-Konfiguration

Was ist Lastenausgleich?

Wenn ein Domänenname auf mehrere Webserver verweist, fügen Sie einen Nginx-Lastausgleichsserver hinzu. Durch den Nginx-Lastausgleich können Clientanforderungen gleichmäßig an die einzelnen Webserver gesendet werden. So wird vermieden, dass ein einzelner Server überlastet wird, während die anderen Server relativ ungenutzt sind.

Konfigurieren Sie den Nginx-Lastausgleich:

Erstellen Sie eine neue Konfigurationsdatei auf der Nginx-Maschine:

[root@centos02 ~]# vi /etc/nginx/conf.d/test.conf

Fügen Sie den folgenden Inhalt hinzu:

Upstream-Test
 {
  ip_hash; 
  Server 192.168.0.10:80 Gewicht=100; 
  Server 192.168.0.20:80 Gewicht=50;
 }
 Server
 {
  hören Sie 80;
  Servername www.test.com;
  Standort /
  {
   Proxy-Passwort http://test;
   Proxy_Set_Header Host $host;
   Proxy_Set_Header X-Real-IP $Remote_Addr;
   proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
 }
  • Upstream: Lastenausgleichskonfiguration
  • Test: benutzerdefinierter Name, der für die Proxy-Pass-Referenz im Server{} verwendet wird
  • ip_hash: Alle Anfragen vom selben Client an denselben Server senden (andernfalls kann es sein, dass sich der Client einfach bei der Website anmeldet, dann auf eine andere Unterseite klickt und aufgefordert wird, sich erneut anzumelden)
  • Server: Webserveradresse
  • Gewicht: Definiert das Gewicht (Bereich 0-100). Der Lastausgleichsserver gibt dem Senden von Anfragen mit einem höheren Gewicht Priorität an den Webserver (im obigen Beispiel werden bei 150 eingehenden Anfragen 100 an 192.168.0.10 und 50 an 192.168.0.20 zugewiesen).
  • server_name: Der Domänenname der aufgerufenen Website
  • proxy_pass: bezieht sich auf den upstream definierten Namen

Überprüfen Sie die Nginx-Konfiguration und laden Sie sie neu:

[root@centos02 ~]# nginx -t
nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung
nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
[root@centos02 ~]# nginx -s neu laden

Ändern Sie als Nächstes die Hosts-Datei des Clients, um den Testdomänennamen www.test.com auf die IP der getesteten Nginx-Lastausgleichsmaschine zu verweisen, um auf die Website www.test.com zuzugreifen.

Ergänzung zum Beispiel einer Lastenausgleichskonfiguration

1. Entsprechend der gewünschten Dateikonfiguration:

upstream aa {   
    Server 192.168.0.10;
    Server 192.168.0.20; 
  }
Upstream bb { 
    Server 192.168.0.100;
    Server 192.168.0.101;
 }
 Server {
  hören Sie 80;
  Servername www.test.com;
  Standort ~ aa.php
  {
   Proxy-Passwort http://aa/;
   Proxy_Set_Header Host $host;
   Proxy_Set_Header X-Real-IP $Remote_Addr;
   proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
  Standort ~ bb.php
  {
    Proxy-Passwort http://bb/;
    Proxy_Set_Header Host $host;
    Proxy_Set_Header X-Real-IP $Remote_Addr;
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
  Standort /
  {
    Proxy-Passwort http://bb/;
    Proxy_Set_Header Host $host;
    Proxy_Set_Header X-Real-IP $Remote_Addr;
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
}

Anfragen an aa.php gehen an die Gruppe aa, Anfragen an bb.php gehen an die Gruppe bb und alle anderen Anfragen gehen an die Gruppe bb. Sie müssen location / {} haben, sonst kann die URL nicht richtig zugeordnet werden.

2. Konfigurieren Sie entsprechend dem gewünschten Verzeichnis:

upstream aa {   
    Server 192.168.0.10;
    Server 192.168.0.20; 
  }
Upstream bb { 
    Server 192.168.0.100;
    Server 192.168.0.101;
 }
 Server {
  hören Sie 80;
  Servername www.test.com;
  Standort /dir1/
  {
   Proxy-Passwort http://aa/dir1/;
   Proxy_Set_Header Host $host;
   Proxy_Set_Header X-Real-IP $Remote_Addr;
   proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
  Standort /dir2/
  {
    Proxy-Passwort http://bb/dir2/;
    Proxy_Set_Header Host $host;
    Proxy_Set_Header X-Real-IP $Remote_Addr;
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
  Standort /
  {
    Proxy-Passwort http://bb/;
    Proxy_Set_Header Host $host;
    Proxy_Set_Header X-Real-IP $Remote_Addr;
    proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
  }
}

#Wenn die Anforderungs-URI mit /dir1/ übereinstimmt, leiten Sie den Proxy an aa/dir1/ weiter, wenn sie mit /dir2/ oder anderen übereinstimmt, leiten Sie den Proxy an bb/dir2/ weiter.

Nginx konfiguriert das SSL-Zertifikat für den Zugriff auf die Website über das https-Protokoll:

Website zur Beantragung eines SSL-Zertifikats:

1. https://www.wosign.com/
2. https://freessl.cn/ (kostenlos)

#Nach der Generierung über den Browser müssen Sie eine Zertifikatsdatei auf dem Server erstellen

Erstellen Sie die Zertifikatsdateien:

[root@linux ~]# mkdir /etc/nginx/ssl
[root@linux ~]# cd !$
cd /etc/nginx/ssl
[root@linux ssl]# touch ca
[root@linux ssl]# touch test.crt
[root@linux ssl]# touch test.key

#Fügen Sie den Inhalt des entsprechenden Zertifikats, das von der Website zur Zertifikatsanwendung bereitgestellt wird, zur Datei ca / ​​.crt / .key hinzu

Bearbeiten Sie die Nginx-Konfigurationsdatei:

[root@linux ~]# vi /etc/nginx/conf.d/bbs.conf

Fügen Sie den folgenden Inhalt hinzu:

hören Sie 443 SSL;
Servername test.bbs.com;
SSL aktiviert;
ssl_certificate /etc/nginx/ssl/test.crt; #definieren Sie den Pfad der CRT-Datei ssl_certificate_key /etc/nginx/ssl/test.key; #definieren Sie den Pfad der Key-Datei ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Überprüfen Sie die Konfiguration und laden Sie nginx neu:

[root@linux ~]# nginx -t
nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung
nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
[root@linux ~]# nginx -s neu laden

#Besuchen Sie als Nächstes die Adressleiste der Website, um HTTPS anzuzeigen

Methode zur Curl-Verifizierung:

curl -k -H "host:test.bbs.com" https://192.168.234.128/index.php

#host: Domänenname, https:// Webserver-IP, das Ausgabeergebnis sind die Tag-Informationen der Website-Seite, was Erfolg bedeutet

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Konfiguration des SSL-Zertifikats für den Nginx-Domänennamen (Website-HTTP auf https aktualisiert)
  • Schritte zum Konfigurieren von Nginx SSL zur Implementierung des HTTPS-Zugriffs (für Anfänger geeignet)
  • So konfigurieren Sie Nginx mit einem SSL-Zertifikat zum Bereitstellen einer HTTPS-Website (Ausstellen des Zertifikats)
  • Einführung in die Installations- und Bereitstellungsschritte für SSL-Zertifikate unter Nginx

<<:  Der Unterschied zwischen gespeicherten Prozeduren und Transaktionen in MySQL-Datenbanken

>>:  Zusammenfassung des Verständnisses des virtuellen DOM in Vue

Artikel empfehlen

Detaillierte Erläuterung der Nginx-Weiterleitungssocket-Portkonfiguration

Gängige Szenarien für die Weiterleitung von Socke...

Detaillierte Erläuterung des Vue-Router-Routings

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Einführung in Netzwerktreiber für Linux-Geräte

Kabelgebundenes Netzwerk: Ethernet Drahtloses Net...

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker ...

Nginx-Weiterleitung basierend auf URL-Parametern

Anwendungsszenarien: Der Sprungpfad muss entsprec...

WeChat-Applet implementiert Sortierfunktion basierend auf Datum und Uhrzeit

Ich habe vor kurzem ein kleines Programmierprojek...

Vue3.0 Handschrift-Lupeneffekt

Der zu erzielende Effekt ist: Festes Vergrößern a...

MySQL-Sortierung zum Abrufen eines Ranking-Beispielcodes

Der Code sieht folgendermaßen aus: SELECT @i:=@i+...