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

Unterschiede im Stundentrennzeichen zwischen Browsern

Beim Erstellen einer Webseite verwenden Sie manchm...

Beispielcode von layim zum Integrieren des Rechtsklickmenüs in JavaScript

Inhaltsverzeichnis 1. Wirkungsdemonstration 2. Im...

18 allgemeine Befehle in der MySQL-Befehlszeile

Bei der täglichen Wartung und Verwaltung von Webs...

Tutorial zur MySQL-Installation unter Linux (Binärdistribution)

Dieses Tutorial beschreibt Ihnen die detaillierte...

Eine kurze Diskussion zum Erstellen eines Clusters in nodejs

Inhaltsverzeichnis Cluster-Cluster Clusterdetails...

So verbessern Sie die Sicherheit von Linux- und Unix-Servern

Netzwerksicherheit ist ein sehr wichtiges Thema u...

Lösung zur Installation von OpenCV 3.2.0 in Ubuntu 18.04

Laden Sie opencv.zip herunter Installieren Sie di...

Einige Schlussfolgerungen zur Entwicklung mobiler Websites

Die mobile Version der Website sollte zumindest ü...

HTML-Hyperlink ein Tag_Powernode Java Academy

Jeder, der HTML studiert oder verwendet hat, soll...

Javascript-Bereich und Abschlussdetails

Inhaltsverzeichnis 1. Geltungsbereich 2. Geltungs...

HTML-Tutorial, HTML-Standardstil

html , Adresse , Blockzitat , Text , dd , div , d...