Detaillierte Erklärung der Nginx-Konfigurationsdatei und Anleitung mit Optimierungsvorschlägen

Detaillierte Erklärung der Nginx-Konfigurationsdatei und Anleitung mit Optimierungsvorschlägen

1. Übersicht

Heute werde ich die Nginx-Konfigurationsdatei im Detail erläutern und einige Konfigurationsvorschläge machen, in der Hoffnung, dass es für alle hilfreich ist.

2. nginx.conf

1) Speicherort der Konfigurationsdatei

Im conf-Ordner des Nginx-Installationsverzeichnisses, zum Beispiel: /usr/local/nginx/conf/nginx.conf.

Sie können die Konfigurationsdatei auch an einer beliebigen Stelle ablegen und beim Starten von Nginx den Speicherort der Konfigurationsdatei angeben, zum Beispiel: ./nginx -c /home/nginx.conf

2) Arbeitsprozesse

Legen Sie die Anzahl der Worker fest. Das Prozessmodell von Nginx verwendet den Master- und Worker-Modus. Ein Master ist für die Koordination verantwortlich und mehrere Worker sind für die Interaktion mit dem Client verantwortlich.

Stellen Sie es hier einfach auf Automatisch.

3) Veranstaltungen

Legen Sie das zu verwendende Modell und die Anzahl der Verbindungen pro Worker fest.

Das Modell im Linux-Betriebssystem empfiehlt die Verwendung von epoll.

Die Anzahl der Worker-Verbindungen ist im Normalfall auf 10240 eingestellt. Bei sehr guten Hardware-Ressourcen kann diese Zahl natürlich auch entsprechend erhöht werden.

4) umfassen

Fügen Sie den Inhalt einer anderen Datei ein, indem Sie den Inhalt der anderen Datei am Tag platzieren.

Sie können mehrere Includes für mehrere Dateien schreiben oder Platzhalter verwenden, um mehrere Dateien abzugleichen.

5) sendfile und tcp_nopush

sendfile: Legen Sie fest, ob die effiziente Dateiübertragung aktiviert ist (standardmäßig aktiviert).

tcp_nopush: Dies ist nur wirksam, wenn der Wert sendfile aktiviert ist. Wenn tcp_nopush aktiviert ist, bedeutet dies, dass die Datenpakete gesendet werden, wenn sie eine bestimmte Größe erreichen, was zur Verbesserung der Effizienz der Dateiübertragung beiträgt.

Es wird empfohlen, beides einzuschalten.

6) Keepalive_Timeout

Das Timeout-Zeitfenster für die Verbindung des Clients mit dem Server. Bevor die Verbindung getrennt wird, interagiert der Client erneut mit dem Server und kann diese Verbindung erneut verwenden. Es ist nicht erforderlich, eine Verbindung erneut herzustellen, was den Ressourcenaufwand reduziert.

Wenn der Wert auf 0 gesetzt ist, bedeutet dies, dass die Verbindung sofort nach der Interaktion getrennt wird. Dieser Wert kann der Standardwert bleiben.

7) gzip

Wenn diese Option aktiviert ist, werden die Daten vor der Übertragung komprimiert. Dadurch wird die Übertragungseffizienz verbessert und Bandbreite gespart, allerdings wird die Leistung der Server-CPU beeinträchtigt.

Um diese Konfiguration zu aktivieren, müssen Sie auch einige zusätzliche Eigenschaften konfigurieren.

Hier können Sie abwägen, ob Sie Bandbreite sparen oder die CPU-Leistung verbessern möchten. Es wird empfohlen, dies zu aktivieren und entsprechend den tatsächlichen Bedingungen zu konfigurieren.

Kopieren Sie den Code wie folgt:
gzip on;gzip_min_length 512; # Minimale Komprimierungsgrenze in Bytes. Wenn sie unter diesem Wert liegt, wird nicht komprimiert. gzip_comp_level 5; # Komprimierungsstufe, der Wert liegt zwischen 1 und 9. Je höher die Stufe, desto höher die Komprimierungsrate und desto mehr CPU-Verbrauch. gzip_types text/plain application/javascript text/css image/jpeg image/gif image/png application/json; # Dateitypen, die komprimiert werden müssen

8) Server

Ein Serverblock ist ein virtueller Dienst.

Im Serverblock können Sie den Port, den Dienstnamen, die Routing-Regeln und andere Informationen des virtuellen Dienstes angeben.

Es kann mehrere Server geben.

Auf einem Server können mehrere Standorte vorhanden sein.

Server {
        listen 90; # Port Servername localhost; # Dienstname, der eine IP-Adresse oder ein Domänenname sein kann. Wenn die Ports gleich sind, wird die Routing-Regel entsprechend dem Dienstnamen location / { ausgewählt. # Routing-Regel für den Root-Pfad root html; # entspricht dem HTML-Ordner unter dem Nginx-Installationsziel und kann auch auf einen absoluten Pfad festgelegt werden, zum Beispiel: root /home/html;
            index hello.html; #Geben Sie die Standard-Homepage als hello.html an
        }
     location /hello { root /home/hello; # Index wird ausgelassen, was bedeutet, dass keine Standardseite vorhanden ist} 
             error_page 500 502 503 504 /50x.html; # Geben Sie die Fehlerseite an, zu der diese Statuscodes springen location = /50x.html {
            Stamm-HTML;
        }
    }

9) Detaillierte Erklärung der Standortabgleichsregeln

Der Serverblock enthält den Standortblock. Unter einem Server können mehrere Standortblöcke vorhanden sein, die hauptsächlich zum Konfigurieren der Routingregeln für Anforderungen verwendet werden.

Nginx gleicht den angeforderten Ressourcenpfad mit dem Standortblock ab und leitet die Route dann entsprechend der Standortkonfiguration weiter.

Der Standort unterstützt mehrere Übereinstimmungsregeln, die im Folgenden ausführlich beschrieben werden.

Genaue Übereinstimmung

location / { # Routing-Regel für den Stammpfad root html; # Entspricht dem HTML-Ordner unter dem Nginx-Installationsziel, kann auch auf einen absoluten Pfad festgelegt werden, zum Beispiel: root /home/html;
            index hello.html; #Geben Sie die Standard-Homepage als hello.html an
        }
    Standort /hallo {
     root /home/hallo;
     # Index ausgelassen, was bedeutet, dass keine Standardseite vorhanden ist}

Übereinstimmung mit regulären Ausdrücken

    Standort ~* \.(GIF|PNG|jpg|bmp|jpeg) { # * steht für das Groß-/Kleinschreibungs-unabhängige Stammverzeichnis /home/img;
    }

Stimmt mit Anfragen überein, die mit einem bestimmten Pfad beginnen

    Standort ^~ /server/page/ {
        Stammverzeichnis /home/Seite;
    }

3. Übersicht

Heute haben wir die Nginx-Konfiguration ausführlich erklärt. Einige erweiterte Anwendungen von Nginx werden später separat vorgestellt. Ich hoffe, wir können mehr kommunizieren und gemeinsam wachsen.

Dies ist das Ende dieses Artikels über die detaillierte Erklärung und Optimierung der Nginx-Konfigurationsdatei. Weitere relevante Inhalte zur Optimierung der Nginx-Konfigurationsdatei finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Eine kurze Analyse des Schreibens und der Verwendung von Variablen in der Nginx-Konfigurationsdatei
  • Chinesische Kommentare zur Konfigurationsdatei nginx.conf von Nginx
  • Detaillierte Erklärung der Nginx-Konfigurationsdatei auf Chinesisch
  • Einführung in die Nginx-Konfiguration und Konfigurationsdateien unter Windows
  • Vollständige Analyse der Nginx-Serverkonfigurationsdatei
  • Detaillierte Erklärung, wie Sie den Speicherort der Nginx-Konfigurationsdatei finden
  • Detaillierte Erklärung der Nginx-Konfigurationsdatei
  • Detaillierte Erklärung der Nginx-Konfigurationsdatei

<<:  Analyse und Meinungen zur Designstruktur des großen Bildes auf der Homepage der Taobao Mall (Bild)

>>:  Warum MySQL die Verwendung von Nullspalten mit Standardwerten nicht empfiehlt

Artikel    

Artikel empfehlen

21 Best Practices zur MySQL-Standardisierung und -Optimierung!

Vorwort Jede gute Angewohnheit ist ein Schatz. Di...

my.cnf-Parameterkonfiguration zur Optimierung der InnoDB-Engine-Leistung

Ich habe im Internet unzählige my.cnf-Konfigurati...

So verwenden Sie Nginx zum Erstellen eines statischen Ressourcenservers

Nehmen wir Windows als Beispiel. Bei Linux ist es...

Detaillierte Erklärung der Gründe, warum MySQL-Verbindungen hängen bleiben

Inhaltsverzeichnis 1. Hintergrund Architektur Pro...

Analyse der Implementierung der Nginx Rush-Kaufstrombegrenzungskonfiguration

Aus geschäftlichen Gründen kommt es häufig zu Eil...

Zusammenfassung der sieben MySQL JOIN-Typen

Bevor wir beginnen, erstellen wir zwei Tabellen, ...

Wie kann MySQL das Löschen und Weglaufen von Datenbanken wirksam verhindern?

Inhaltsverzeichnis Einstellungen für den abgesich...

Die v-for-Direktive in Vue vervollständigt die Listendarstellung

Inhaltsverzeichnis 1. Listendurchlauf 2. Die Roll...

Detaillierte Erläuterung des Docker-Arbeitsmodus und -Prinzips

Wie in der folgenden Abbildung dargestellt: Wenn ...

Eine kurze Erläuterung des Lazy-Loading-Attributmusters in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. On-Demand-Att...