Lernen Sie die Grundlagen von nginx

Lernen Sie die Grundlagen von nginx

1. Was ist nginx?

nginx ist ein leistungsstarker HTTP- und Reverse-Proxy-Webserver mit geringem Speicherbedarf und starker Parallelität. Es gibt Berichte, dass Nginx bis zu 50.000 gleichzeitige Verbindungen erreichen kann.

2. Was kann nginx?

  • Reverse-Proxy
  • Lastenausgleich
  • Trennung von statischer und dynamischer
  • Hochverfügbarkeitscluster

2.1 Was ist ein Forwardproxy?

Der Client (Browser) konfiguriert den Proxyserver und greift über den Proxyserver auf das Internet zu.

2.2 Was ist ein Reverse-Proxy?

Der Client sendet die Anfrage an den Reverse-Proxy-Server, der die Daten abruft und an den Client zurückgibt.

Bitte fügen Sie eine Beschreibung des Bildes hinzu

2.3 Lastverteilung

Der Client sendet mehrere Anfragen an den Server. Der Server verarbeitet die Anfragen und muss für einige Daten mit der Datenbank interagieren. Nachdem der Server die Verarbeitung abgeschlossen hat, gibt er die Ergebnisse an den Client zurück.

Bitte fügen Sie eine Beschreibung des Bildes hinzu

Wenn ein einzelner Server das Problem nicht lösen kann, erstellen Sie einen Servercluster, um

Bitte fügen Sie eine Beschreibung des Bildes hinzu

2.4 Trennung von statischen und dynamischen

Um die Analysegeschwindigkeit der Website zu verbessern, werden dynamische und statische Seiten von verschiedenen Servern analysiert, um den Druck auf den ursprünglichen Einzelserver zu verringern.

Bitte fügen Sie eine Beschreibung des Bildes hinzu

3. Grundlegende Operationen von nginx

1. Geben Sie vor der Verwendung das Nginx-Verzeichnis ein
2. Überprüfen Sie die Versionsnummer von nginx

./nginx -v

3. Starten Sie nginx

./nginx

4. Nginx herunterfahren

./nginx -s stoppen

5. Nginx neu laden

./nginx -s neu laden

6. Überprüfen Sie den Status von nginx

ps -ef | grep nginx

3.1 Nginx-Konfigurationsdatei nginx/conf/nginx.conf

1. Globaler Block

Inhalt aus der Konfigurationsdatei zum Ereignisblock.

2. Ereignisblock

Die Ereignisblockdirektive betrifft hauptsächlich die Netzwerkverbindung zwischen dem Nginx-Server und dem Benutzer. Die maximale Anzahl von Verbindungen, die von Worker-Verbindungen unterstützt werden, beträgt 1024.

3.http-Block

3.2 Firewall-Einstellungen

// Zeigen Sie die offene Portnummer an firewall-cmd --list-all

// Offene Portnummer festlegen firewall-cmd --add-service=http –permanent // HTTP-Dienst in der Firewall dauerhaft öffnen firewall-cmd --add-port=80/tcp --permanent // Port 80 in der Firewall dauerhaft öffnen // Firewall neu starten firewall-cmd –reload

IV. Fallbeispiel für die Implementierung eines Reverse-Proxys

4.1.Nginx Reverse-Proxy-Implementierungsbeispiel 1

Wirkung: Geben Sie eine Adresse ein und springen Sie zur Tomcat-Homepage

Nginx konfiguriert den Reverse-Proxy und leitet Anfragen hauptsächlich über die Proxy_Pass-Konfiguration weiter.

1. Konfiguration des Domänennamens der Hosts-Datei

Konfigurieren Sie die Entsprechung zwischen Domänenname und IP in der Hosts-Datei des Windows-Systems (Windods/System32/driver/etc/hosts auf Laufwerk C).

Bitte fügen Sie eine Beschreibung des Bildes hinzu

2. Konfiguration der Anforderungsweiterleitung in nginx (Reverse-Proxy-Konfiguration) nginx.conf

Ändern Sie hauptsächlich die Konfigurationen „server_name“ und „proxy_pass“:

  • Servername: Host-IP
  • proxy_pass: Nginx-Proxy-Adresse

Bitte fügen Sie eine Beschreibung des Bildes hinzu

Testerfolg

Bitte fügen Sie eine Beschreibung des Bildes hinzu

4.2Nginx Reverse Proxy-Implementierung, Fall 2

Verwenden Sie den Nginx-Reverse-Proxy, um je nach Zugriffspfad zu verschiedenen Service-Ports zu springen. Der Nginx-Abhörport ist 9001

1. Vorbereitung

Stellen Sie Tomcat 8080 bereit

Stellen Sie tomcat8081 bereit

Da die Standard-Portnummer von Tomcat 8080 ist, müssen Sie beim Festlegen der Portnummer von Tomcat einige Ports in server.xml ändern und Tomcat starten.

Suchen Sie in den beiden Tomcat-Dateien nach Webapps, erstellen Sie in deren Verzeichnis zwei Dateien „edu“ und „vod“, legen Sie die HTML-Seite darin ab und testen Sie, ob auf die Seite erfolgreich zugegriffen werden kann.

2. Suchen Sie die Nginx-Konfigurationsdatei nginx.conf

Server {
    hören Sie 9001;
    Servername 192.168.25.101;

    Standort ~ /edu/ {
        Proxy-Passwort http://127.0.0.1:8080;
    }

    Standort ~ /vod/ {
        Proxy-Passwort http://127.0.0.1:8081;
    }
}   

3. Öffnen Sie die Zugangsports 8080 8081 9001, sonst ist der Zugriff nicht möglich

4. Starten Sie nginx neu und testen Sie

Bitte fügen Sie eine Beschreibung des Bildes hinzu

Bitte fügen Sie eine Beschreibung des Bildes hinzu

5. Implementierungsfall für den Lastenausgleich

1. Ergebnisse erzielen

Geben Sie in die Browseradresse die Adresse http://192.168.17.129/edu/a.html ein, und der Lastausgleichseffekt wird gleichmäßig auf die Ports 8080 und 8081 verteilt.

2. Vorbereitung

1. Stellen Sie Tomcat 8080 bereit, stellen Sie Tomcat 8081 bereit

2. Erstellen Sie im Webapps-Verzeichnis der beiden Tomcats einen Ordner mit dem Namen edu und erstellen Sie zum Testen zwei Seiten a.html im Ordner

3. Nehmen Sie die entsprechende Konfiguration in der Nginx-Konfigurationsdatei vor und konfigurieren Sie sie unter http

Upstream meinServer{
    //Servernamen hinzufügen Server 192.168.17.129;8080;
    Server 192.168.17.129;8081;
}

Bitte fügen Sie eine Beschreibung des Bildes hinzu

Konfigurieren Sie dann unter Server und Standorta

Servername 192.168.17.129:
Standort /{
    Proxy-Passwort http://meinServer;
}

Bitte fügen Sie eine Beschreibung des Bildes hinzu

5.1nginx-Lastausgleichsstrategie

  • Polling (Standard)

Jede Anfrage wird in chronologischer Reihenfolge einem anderen Backend-Server zugewiesen. Wenn ein Backend-Server ausfällt, kann er automatisch entfernt werden.

  • Gewicht

Gewicht stellt das Gewicht dar, der Standardwert ist 1, je höher das Gewicht, desto mehr Clients werden zugewiesen

verwenden:

Upstream meinServer{
    //Servernamen hinzufügen Server 192.168.17.129;8080 Gewicht = 10;
    Server 192.168.17.129;8081 Gewicht = 20;
}
  • ip_hash

Jede Anfrage wird anhand des Hash-Ergebnisses der Zugriffs-IP zugeordnet, so dass nachfolgende Zugriffe auf einen festen Backend-Server erfolgen können

  • gerecht

Zuordnung basierend auf der Reaktionszeit.

Upstream meinServer{
    //Servernamen hinzufügen Server 192.168.17.129;8080;
    Server 192.168.17.129;8081;
    gerecht;
}

6. Dynamische und statische Trennung von Nginx

6.1 Implementierungsprozess

Geben Sie je nach Standort unterschiedliche Suffixe an, um eine unterschiedliche Anforderungsweiterleitung zu erreichen. Durch Konfigurieren des Parameters „expires“ können Sie eine Ablaufzeit für den Browser-Cache festlegen, um Anforderungen und Datenverkehr zwischen Server und Server zu reduzieren.

6.2 Beispiele

1. Bereiten Sie statische Ressourcen vor

2. Spezifische Konfiguration

  • 1. Konfigurieren Sie nginx/conf in der nginx-Konfigurationsdatei

Bitte fügen Sie eine Beschreibung des Bildes hinzu

  • 2. Geben Sie die URL ein, um darauf zuzugreifen

7. Nginx-Konfiguration mit hoher Verfügbarkeit

7.1 Was ist Nginx-Hochverfügbarkeit?

Bitte fügen Sie eine Beschreibung des Bildes hinzu

Wie aus der Abbildung ersichtlich, wird im vorherigen Betriebsmodus, wenn nur ein Nginx vorhanden ist, die Benutzeranforderung über Nginx an verschiedene Tomcats weitergeleitet. Wenn einer der Nginx ausfällt, schlägt die Dienstweiterleitung fehl. Wenn daher durch das Erstellen eines Nginx-Clusters der Ngnix des Hauptservers ausfällt, leitet der Ngnix des Backup-Servers die Benutzeranforderung erneut an Tomcat weiter und stellt so eine hohe Verfügbarkeit sicher.

7.2. Hochverfügbarkeitsvorbereitung für die Nginx-Konfiguration

  • Bereiten Sie zwei Server vor: 192.168.17.129 und 192.268.17.131
  • Installieren Sie nginx auf beiden Servern
  • Konfigurieren einer virtuellen Adresse
  • Installieren Sie Keepalived auf beiden Servern direkt über Yum
yum installiere keepalive -y

7.3 Hochverfügbarkeitskonfiguration

Schließen Sie die Keepalive-Konfiguration ab und suchen Sie die Keepalive-Konfigurationsdatei keepalive.conf

(1) Ändern Sie die Konfigurationsdatei /etc/keepalived/keepalivec.conf

global_defs {
	Benachrichtigungs-E-Mail {
	[email protected]
	[email protected]
	[email protected]
	}
	Benachrichtigungs-E-Mail von [email protected]
	SMTP-Server 192.168.17.129
	smtp_connect_timeout 30
	Router-ID LVS_DEVEL
}

vrrp_script chk_http_port {
	Skript "/usr/local/src/nginx_check.sh"
	Intervall 2 # (Intervall zwischen der Ausführung des Erkennungsskripts)
	Gewicht 2
}

vrrp_instance VI_1 {
	state BACKUP # Ändere MASTER in BACKUP auf dem Backup-Server
	Schnittstelle ens33 //Netzwerkkarte virtual_router_id 51 # Die virtual_router_id der Master- und Backup-Maschinen müssen dieselbe Priorität haben priority 90 # Die Master- und Backup-Maschinen haben unterschiedliche Prioritäten, die Master-Maschine hat einen höheren Wert und die Backup-Maschine einen niedrigeren Wert advertisement_int 1
	Authentifizierung
		Authentizitätstyp PASS
		Auth_Passwort 1111
	}
	virtuelle_IP-Adresse {
		192.168.17.50 // VRRP H virtuelle Adresse }
}

(2) Fügen Sie ein Erkennungsskript in /usr/local/src hinzu

A=`ps -C nginx –no-header |wc -l`
wenn [ $A -eq 0 ];dann
	/usr/local/nginx/sbin/nginx
	Schlaf 2
	wenn [ `ps -C nginx --no-header |wc -l` -eq 0 ];dann
		alles töten, am Leben bleiben
	fi
fi

(3) Starten Sie nginx und keepalived auf beiden Servern. Starten Sie nginx: ./nginx
Starten Sie Keepalived: systemctl start keepalived.service

7.4 Prüfung

1). Geben Sie die virtuelle IP-Adresse in die Browseradresse ein: 192.168.17.50

Sie können direkt zugreifen

2) Wenn der Hauptserver nginx und keepalived gestoppt werden, kann die Seite weiterhin aufgerufen werden, wenn die virtuelle Adresse erneut eingegeben wird

8. Funktionsprinzip von nginx

Meister & Arbeiter

Bitte fügen Sie eine Beschreibung des Bildes hinzu

8.1. Ein Master und mehrere Arbeiter haben Vorteile

  • Für jeden Arbeitsprozess muss kein unabhängiger Prozess gesperrt werden, sodass der durch die Sperre verursachte Overhead eingespart wird. Gleichzeitig ist es beim Programmieren und Auffinden von Problemen viel bequemer. Sie können nginx –s reload hot deployment verwenden und nginx für Hot-Deployment-Vorgänge verwenden.
  • Jeder Worker ist ein unabhängiger Prozess. Wenn bei einem der Worker ein Problem auftritt, konkurrieren die anderen Worker unabhängig voneinander weiter um die Implementierung des Anforderungsprozesses, ohne dass es zu einer Dienstunterbrechung kommt.

8.2 Wie viele Arbeiter sollen eingestellt werden?

  • Am besten ist es, wenn die Anzahl der Worker der Anzahl der CPUs auf dem Server entspricht. (Beispiel: Wenn Ihr Computer über 4 Kerne verfügt, reicht die Einstellung von 4 Workern; wenn er über 8 Kerne verfügt, reicht die Einstellung von 8 Workern)

8.3. Anzahl der Verbindungen worker_connection

Erstens: Wie viele Woker-Verbindungen werden durch das Senden einer Anfrage belegt?
Antwort: 2 oder 4 Zweite Frage: nginx hat einen Master und vier Worker. Jeder Worker unterstützt maximal 1024 Verbindungen. Wie viele gleichzeitige Verbindungen werden maximal unterstützt?

  • Die maximale Anzahl gleichzeitiger statischer Zugriffe beträgt: Worker-Verbindungen * Worker-Prozesse / 2.
  • Wenn HTTP als Reverse-Proxy verwendet wird, sollte die maximale Anzahl gleichzeitiger Verbindungen worker_connections * worker_processes/4 betragen.

Dies ist das Ende dieses Artikels zum Erlernen der Grundlagen von nginx. Weitere relevante grundlegende Inhalte zu nginx finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie das Realip-Modul im Nginx-Grundlagenlernen
  • Führen Sie die Schritte zum Konfigurieren der grundlegenden Benutzerauthentifizierung auf Nginx-Ebene aus.
  • Eine kurze Einführung in die Grundlagen von Nginx
  • Nginx-Grundlagen - Gzip-Konfigurationshandbuch
  • Grundlegende Sicherheitskonfiguration des Nginx-Servers und einige Sicherheitstipps
  • Eine Erklärung der grundlegenden Konfiguration von Nginx

<<:  Apropos „Weniger und mehr“ im Webdesign (Bild)

>>:  Konvertierung einer vertikalen MySQL-Tabelle in eine horizontale Tabelle und Tutorial zur Optimierung

Artikel empfehlen

Erste Schritte mit GDB unter Linux

Vorwort gdb ist ein sehr nützliches Debugging-Too...

Detailliertes Tutorial zur Springcloud-Alibaba-Nacos-Linux-Konfiguration

Laden Sie zuerst das komprimierte Nacos-Paket von...

Was macht die MySQL-Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Verstehen Sie die Prinzipien und Anwendungen von JSONP in einem Artikel

Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...

Diagramm zur Installation von VMware 14 unter Windows 10

Software-Download Link zum Herunterladen der Soft...

Analyse der MySQL-Absturzwiederherstellung basierend auf Redo Log und Undo Log

Inhaltsverzeichnis MySQL-Absturzwiederherstellung...

HTML-Tipps, um Ihren Code semantisch zu gestalten

HTML-Semantik scheint ein alltägliches Problem zu...

Das Problem der Verwendung von Slots durch Vue+tsx wird nicht behoben

Inhaltsverzeichnis Vorwort Finden Sie das Problem...