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

Einführung in HTML für Frontend-Entwickler

1 Einführung in HTML 1.1 Erste Erfahrungen mit Co...

Detaillierte Erläuterung der Konfiguration der Alibaba Cloud-Sicherheitsregeln

Vor zwei Tagen habe ich das Double 11-Shopping-Fe...

Regeln für die Gestaltung des Anmeldeformulars

Ich habe „Patterns for Sign Up & Ramp Up“ vor ...

So schreiben Sie den Stil einer CSS3-Tianzi-Rasterliste

In vielen Projekten ist es notwendig, die Funktio...

Vite führt die Implementierung virtueller Dateien ein

Inhaltsverzeichnis Hintergrund Virtuelle Dateien ...

Mehrere Methoden zum Löschen von Floating (empfohlen)

1. Fügen Sie ein leeres Element desselben Typs hi...

Der Unterschied und die Wahl zwischen Datum und Uhrzeit und Zeitstempel in MySQL

Inhaltsverzeichnis 1 Unterschied 1.1 Raumbelegung...

Detaillierte Installationsschritte für MySQL 8.0.11

In diesem Artikel werden die Installationsschritt...

Reiner CSS-Code zum Erzielen von Fluss und dynamischen Linieneffekten

Ideen: Eine äußere Box legt den Hintergrund fest;...

Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung

1. Festplattenpartition: 2. fdisk-Partition Wenn ...