Nginx-Praxis zur Optimierung hoher Parallelität

Nginx-Praxis zur Optimierung hoher Parallelität

1. Notwendigkeit des Tunings

Ich habe mich immer gescheut, optimierte Inhalte zum Teilen zu schreiben, weil ich wirklich nicht weiß, wie man sie schreibt. Denn wenn ich nicht gut schreibe, werde ich auf verschiedene Weise kritisiert. Ich habe es heute endlich geschrieben, weil mir so viele Leute private Nachrichten geschickt oder mich in der Gruppe gefragt oder mich gebeten haben, meine Erfahrungen zu teilen, also habe ich nachgegeben.

Bevor wir über Tuning sprechen, müssen wir zunächst verstehen, warum wir Tuning benötigen und welche Beziehung zwischen Geschäftsbetrieb und Tuning besteht.

  • Geschäftsbetrieb: Der Online-Handel läuft normal und dient dem Geschäftsbetrieb des Unternehmens.
  • Überwachungsgeschäft: Überwachen Sie das Online-Geschäft durch Überwachungsgeschäft, um Probleme rechtzeitig zu erkennen.
  • Geschäft optimieren: Durch Überwachung und Analyse können Geschäftsprobleme oder Engpässe entdeckt und das Geschäft oder die Software rechtzeitig angepasst und optimiert werden.
  • Testoptimierung: Nach Abschluss der Optimierung muss die vorhandene Optimierung getestet werden, um sicherzustellen, dass das Geschäft im aktuellen Optimierungsmodus stabil und effizient ist und die aktuellen Probleme lösen kann.

Dies ist ein Geschäftsbetriebsprozess und zugleich unsere Art des Betriebs und der Wartung, um Geschäftsstabilität, Effizienz und hohe Verfügbarkeit zu gewährleisten.

2. Dimensionen und Meinungsunterschiede beim Tuning

Artikel zum Thema Tuning sind am schwierigsten zu schreiben, da ich Ihnen nur die Tuning-Optionen und nicht die spezifischen Schwellenwerte nennen kann. Denn unterschiedliche Unternehmen laufen auf unterschiedlichen Maschinen und verbrauchen unterschiedliche Ressourcen. Und aufgrund unterschiedlicher Szenarien ändern sich die entsprechenden Tuning-Elemente und Schwellenwerte ständig. So wie Sie und Ihr Mitbewohner beide erkältet sind, Ihnen im Krankenhaus aber völlig unterschiedliche Medikamente verschrieben werden. Aus diesem Grund kommen vielen Leuten, wenn sie Tuning-Artikel lesen und bestimmte Tuning-Elemente oder Schwellen sehen, zwei Worte in den Sinn: „Es ist mir peinlich, das zu sagen, bitte fügen Sie ein Bild hinzu!“ Ich hoffe, jeder versteht es.

3. Nginx-Tuning

  • Gleichzeitige Anzahl von Nginx
  • Nginx-Prozessoptimierung
  • Nginx-Komprimierung
  • lokaler Nginx-Cache

1. Nginx-Einstellungen für gleichzeitige Anzahl

Arbeiterprozesse 1;

Dies wird verwendet, um nginx so zu konfigurieren, dass mehrere Arbeitsprozesse gestartet werden. Der Standardwert ist 1. Und nginx unterstützt auch ein Konfigurationselement namens worker_cpu_affinity, das heißt, nginx kann die CPU an jeden Arbeitsprozess binden. Ich habe es wie folgt konfiguriert:

 Ereignisse {
    Arbeiterverbindungen 1024;
}

2. nginx bindet den Prozess an einen festen Kern

worker_cpu_affinity 0010 0100 1000;

Arbeitsprozesse 3;
worker_cpu_affinity 0010 0100 1000;
#Hier ist 0010 0100 1000 die Maske, die jeweils den 2., 3. und 4. CPU-Kern darstellt.

Nach dem Neustart von nginx können die drei Arbeitsprozesse ihre eigenen CPUs verwenden.

ps -eo psr,pid,arg Ansicht

Nginx-Parallelität = Worker-Prozesse*Worker-Verbindungen

3. Nginx-Komprimierungsfunktion

Die Komprimierung ist für Webserver sehr wichtig, vor allem in den folgenden zwei Aspekten:

1) Verbessern Sie das Benutzererlebnis: Die Übertragungsdaten werden kleiner und die Wartezeit des Benutzers kürzer.

2) Sparen Sie Bandbreitenkosten für Ihr Unternehmen: Nach der Komprimierung werden die übertragenen Daten kleiner und es wird weniger Bandbreite belegt.

Da es den Benutzern ein gutes Erlebnis bieten kann, kann es dem Unternehmen auch Geld sparen. Warum nicht so etwas Gutes tun? Dies ist also ein unverzichtbares Artefakt für die Arbeit.

Die Komprimierung der Konfiguration erfordert jedoch mehr Aufmerksamkeit:

1) Komprimieren Sie keine Bilder, Audio- und Videodateien

2) Komprimieren Sie keine Dateien, die kleiner als 1 KB sind, da sie sonst größer werden.

3) Je höher die Komprimierungsstufe, desto mehr CPU wird verbraucht

Komprimierung ist nicht aktiviert

Komprimierung aktivieren

Der Code lautet wie folgt:

gzip on; (Gzip-Komprimierung aktivieren)

gzip_http_version 1.1; Der Standardwert ist HTTP/1.1, was bedeutet, dass die Gzip-Komprimierung nur bei Anforderungen des HTTP/1.1-Protokolls durchgeführt wird. gzip_disable "MSIE [1-6]."; Mit dieser Einstellung wird die Gzip-Komprimierung für die IE1-6-Versionen deaktiviert. gzip_proxied any; (Aktivieren Sie diese Option, wenn nginx als Front-End-Proxy verwendet wird. Dies bedeutet, dass die Komprimierung bedingungslos aktiviert wird, unabhängig von den von den Headern des Back-End-Servers zurückgegebenen Informationen.)

gzip_min_length 1024; (Minimale komprimierte Seite. Wenn die Seite zu klein ist, kann sie immer größer werden. Hier wird die Komprimierung nur für Seiten aktiviert, die größer als 1 KB sind.)

gzip_buffers 4 8k; (Richten Sie das System so ein, dass mehrere Cache-Einheiten zum Speichern des Datenstroms mit den GZIP-Komprimierungsergebnissen abgerufen werden und der vierfache Speicherplatz in Einheiten von 8 KB entsprechend der ursprünglichen Datengröße beantragt wird.)

gzip_comp_level 3; (Komprimierungsstufe, 1 hat die niedrigste Komprimierungsrate und die schnellste Verarbeitungsgeschwindigkeit, 9 hat die höchste Komprimierungsrate, aber die langsamste Verarbeitungsgeschwindigkeit und verbraucht auch die meiste CPU. Im Allgemeinen reicht es aus, es auf 3 zu setzen)

gzip_types Text/Klartext/CSS-Anwendung/X-Javascript-Anwendung/Javascript-Anwendung/Xml; (Welcher Seiten- oder Dokumenttyp ermöglicht die Komprimierung)

Komprimierungsüberprüfung aktivieren

4. Lokale Cache-Funktion von Nginx

​ Browser-Caching dient dazu, das Surfen zu beschleunigen und Netzwerkressourcen zu sparen. Der Browser speichert zuletzt aufgerufene Dokumente auf der Festplatte des Benutzers.

Es gibt einen wesentlichen Unterschied zwischen Client-Caching und Komprimierung. Nachdem der Benutzer die Daten zum ersten Mal heruntergeladen hat, werden sie auf der lokalen Festplatte des Clients gespeichert. Bei der nächsten Verwendung werden sie, sofern die lokale Ressource nicht abgelaufen ist, direkt von der lokalen Festplatte gelesen. Dies ist die schnellste Geschwindigkeit, da der WEB-Server nicht gesucht werden muss, um die Daten abzurufen. Es optimiert auch die Benutzererfahrung und spart dem Unternehmen Bandbreitenkosten

Es ist zu beachten, dass:

​ Im Cache werden im Allgemeinen Daten zwischengespeichert, die sich nicht häufig ändern, wie etwa Bilder, Website-Frameworks, Audio und Video. Die beste Anwendung ist die Baidu-Startseite. Ist Ihnen schon einmal aufgefallen, dass Sie die Baidu-Startseite manchmal öffnen können, auch wenn Sie keinen Internetzugang haben? Das liegt daran, dass Ihr lokaler Cache durchsucht wird.

Anweisungen zur Konfiguration des lokalen Nginx-Cache

nginx kann den Header des Browsers über die Anweisung expires festlegen

Syntax: läuft ab [Zeit|Epoche|Max|Aus]

Standardwert: läuft ab

Geltungsbereich: http, Server, Standort

Mit dieser Anweisung können die Header „Expires“ und „Cache-Control“ in der HTTP-Antwort (die das Seiten-Caching steuert) gesteuert werden.
Sie können in Zeitwerten positive oder negative Zahlen verwenden. Der Wert des Headers „Expires“ ergibt sich aus der Addition der aktuellen Systemzeit zum von Ihnen festgelegten Zeitwert.

Epoch gibt den Wert für „Läuft ab“ auf den 1. Januar 1970, 00:00:01 GMT an.
max gibt den Wert von „Expires“ auf 31. Dezember 2037 23:59:59 GMT und den Wert von „Cache-Control“ auf 10 Jahre an.
-1 gibt den Wert von „Expires“ als die aktuelle Zeit des Servers an – 1 s, was bedeutet, dass es immer abläuft.

Cache-Beispiel

Bildcache 30 Tage Speicherort ~.*\.(jpg|png|jpeg)$
  {
 läuft in 30 Tagen ab;
 }

js css-Cache für eine Stunde Standort ~.*\.(js|css)?$
  {
 läuft in 1 Stunde ab;
 }

Cache-Validierung

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:
  • Eine kurze Diskussion über die Kerneloptimierung mit hoher Parallelität bei Nginx10m+
  • Detaillierte Erläuterung der Nginx-Optimierung in Szenarien mit hoher Parallelität
  • So konfigurieren und optimieren Sie FastCGI in Nginx
  • Konfigurationslösung zur Nginx-Dienstoptimierung
  • Sechs Methoden zur Nginx-Optimierung

<<:  Detaillierte Erklärung zur Implementierung des sekundären Caches mit MySQL und Redis

>>:  MySQL-Limit-Leistungsanalyse und -Optimierung

Artikel empfehlen

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

Von Vue berechnete Eigenschaften

Inhaltsverzeichnis 1. Grundlegende Beispiele 2. B...

Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

Tutorial zur Installation und Kennworteinstellung...

JavaScript-Grundlagenoperatoren

Inhaltsverzeichnis 1. Betreiber Zusammenfassen 1....

4 Möglichkeiten zur Implementierung von Routing-Übergangseffekten in Vue

Vue-Router-Übergänge sind eine schnelle und einfa...

Detaillierte Installationsschritte für MySQL 8.0.11

In diesem Artikel werden die Installationsschritt...

XHTML-Erste-Schritte-Tutorial: Was ist XHTML?

Was ist HTML? Um es einfach auszudrücken: HTML wi...

JavaScript implementiert die asynchrone Erfassung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Co...

So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern

1. Ordner löschen Beispiel: rm -rf /usr/java Das ...