8 Möglichkeiten zur Feinabstimmung der NGINX-Leistung unter Linux

8 Möglichkeiten zur Feinabstimmung der NGINX-Leistung unter Linux

NGINX ist ein beliebter, kostenloser und Open-Source-Webserver. Die standardmäßigen NGINX-Konfigurationen sind gut genug, um den Webserver zum Laufen zu bringen.

Wenn Sie NGINX jedoch in vollem Umfang nutzen möchten, müssen Sie mit seinen Konfigurationsdateien spielen und die Parameter festlegen, die die Leistung des Servers optimieren. Auf einem Linux-Rechner finden Sie die Konfigurationsdateien im Verzeichnis /etc/nginx .

Was ist NGINX?

NGINX ist ein moderner Webserver, den Sie als Medienstreamer, Mailserver, Reverse-Proxy, Load Balancer, Cache-Server und mehr verwenden können.

NGINX wird von vielen großen Profilen wie VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter usw. verwendet und ist weithin bekannt für seine erstklassige Leistung. Ein weiterer Vorteil der Verwendung von NGINX ist, dass es einfach zu konfigurieren und zu erlernen ist.

Voraussetzungen zum Optimieren der NGINX-Leistung unter Linux

Sie müssen die folgenden Anforderungen erfüllen, bevor Sie mit NGINX-Konfigurationen beginnen:

  1. Ein unter Linux bereitgestellter und konfigurierter NGINX-Server
  2. Ein grundlegendes Verständnis von NGINX und seinen Konfigurationsdateien

Wenn Sie diese Anforderungen erfüllen, können Sie NGINX auf optimale Leistung einstellen. Mal sehen, wie es geht.

1. Konfigurieren Sie Worker-Prozesse in NGINX

Die NGINX-Architektur besteht aus einem Masterprozess und mehreren Arbeitsprozessen. Die Aufgabe des Master-Prozesses besteht darin, die Konfiguration zu bewerten und Worker zu verwalten. Andererseits besteht die Rolle eines Worker-Prozesses darin, eingehende Anfragen zu bearbeiten und eine Verbindung zwischen Client und Server herzustellen.

Der Prozesswert ist standardmäßig auf Auto eingestellt. Dadurch wird die Anzahl der Worker-Prozesse gleich der Anzahl der verfügbaren CPU-Kerne gesetzt. Führen Sie den folgenden Befehl aus, um zu erfahren, wie viele CPU-Kerne in Ihrem System vorhanden sind:

grep processor /proc/cpuinfo | wc -l

Wenn Sie die Anzahl der Worker-Prozesse erhöhen möchten, müssen Sie dies in der NGINX-Konfigurationsdatei konfigurieren.

Öffnen Sie die Datei mit nano:

nano etc/nginx/nginx.conf

Um weitere Worker-Prozesse zu konfigurieren, ändern Sie den Standardwert auf die maximale Anzahl verfügbarer CPU-Kerne in Ihrem System.

nginx.configuration-Datei mit 4 konfigurierten Prozessoren

2. Worker-Verbindungen konfigurieren

Ein weiterer Parameter, den Sie ändern können, um die Leistung von NGINX zu verbessern, sind Worker-Verbindungen. Dies ist die maximale Anzahl von TCP-Verbindungen, die jeder Arbeitsprozess gleichzeitig verarbeiten kann.

Die meisten Systeme haben einen Standardwert von 512 Verbindungen, aber viele moderne Systeme unterstützen auch eine größere Anzahl. Sie können überprüfen, wie viele Verbindungen Ihr System unterstützt:

ulimit -n

Die Ausgabe ist die maximale Anzahl unterstützter Verbindungen. Sie können dann die Variable worker_connections in der NGINX-Konfigurationsdatei ändern, um die Leistung zu verbessern.

3. GZIP-Komprimierung in NGINX zulassen

NGINX verwendet GZIP für die Dateikomprimierung und -dekomprimierung. Wenn dies in der NGINX-Konfigurationsdatei aktiviert ist, können Sie Bandbreite sparen und die Ladezeit der Website verbessern, wenn die Verbindung langsam ist.

Um die GZIP-Komprimierung zuzulassen, fügen Sie die folgenden Zeilen in der NGINX-Konfigurationsdatei hinzu:

server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}

kommentierte gzip-Konfiguration in der Nginx-Konfigurationsdatei

4. Timeout-Wert in NGINX begrenzen

Reduzierte Timeout-Werte spielen auch eine wichtige Rolle bei der Verbesserung der NGINX-Leistung. Die Keepalive -Verbindungen reduzieren den Prozessor- und Netzwerkaufwand beim Öffnen und Schließen von Verbindungen.

Sie können die folgenden Parameter in der Konfigurationsdatei ändern, um Timeouts zu begrenzen:

http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}

5. Passen Sie die Puffergröße an

Sie können auch NGINX-Puffer anpassen, um die Serverleistung zu optimieren. Wenn die Puffergröße zu gering ist, schreibt NGINX in eine temporäre Datei, wodurch ständig große E/A-Vorgänge ausgeführt werden.

Sie müssen die folgenden Pufferparameter einstellen, damit NGINX optimal funktioniert:

http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6. Deaktivieren Sie Zugriffsprotokolle oder aktivieren Sie die Pufferung von Zugriffsprotokollen

Protokolle verbrauchen viel Speicherplatz und CPU/IO-Zyklen, die die Leistung des Servers beeinträchtigen können, wenn jede Anforderung protokolliert wird.

Sie können Zugriffsprotokolle deaktivieren, wodurch Speicherplatz und CPU-Verarbeitung eingespart werden. Um Zugriffsprotokolle zu deaktivieren, fügen Sie der NGINX-Konfigurationsdatei die folgende Zeile hinzu:

access_log off;

Protokolle sind wichtig, da sie bei der Behebung eines Problems helfen. Das vollständige Deaktivieren von Protokollen ist keine gute Vorgehensweise. In diesem Fall können Sie die Pufferung der Zugriffsprotokolle aktivieren. Dadurch kann NGINX eine Reihe von Protokollen puffern und sie zusammen in die Protokolldatei schreiben, anstatt auf jede Anfrage unterschiedliche Protokolloperationen anzuwenden.

Fügen Sie die folgende Zeile in der NGINX-Konfigurationsdatei hinzu, um das Puffern von Zugriffsprotokollen zu ermöglichen:

access_log /var/log/nginx/access.log main buffer=16k

7. Passen Sie den Caching-Zeitraum für statische Inhalte in NGINX an

Der Inhalt einer Website, der über Seiten hinweg gleich bleibt, wird als statischer Inhalt bezeichnet. Durch das Caching dieser Inhalte können sie an leicht zugänglichen Orten platziert werden. Dieser Mechanismus reduziert die Bandbreitennutzung, ermöglicht eine schnelle Erreichbarkeit und verbessert anschließend die Leistung der Website.

Wenn ein Client statische Inhalte anfordert, stellt der Server eine zwischengespeicherte Version der Inhalte bereit. Fügen Sie die folgenden Zeilen in der virtuellen Hostdatei hinzu, die sich im Verzeichnis /etc/nginx/sites-available befindet:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}

Diese Konfiguration speichert die Dateien für 90 Tage seit dem letzten Browserzugriff.

8. Aktivieren Sie Open File Cache in NGINX

Sie können auch Cache-Parameter für offene Dateien in der NGINX-Konfigurationsdatei verwenden, um die Leistung zu verbessern. Diese Anweisung ermöglicht es, den Dateideskriptor und häufig besuchte Dateien auf dem Server zwischenzuspeichern.

Fügen Sie die folgenden Zeilen im http -Abschnitt in der Konfigurationsdatei hinzu, um den offenen Dateicache zu aktivieren:

http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}

Holen Sie das Beste aus NGINX heraus, indem Sie seine Konfigurationsdateien ändern

Eine bewährte Vorgehensweise beim Ändern von Konfigurationen besteht darin, sich jeweils mit einer Einstellung zu befassen und sie zu testen. Wenn es funktioniert, fahren Sie mit der nächsten Einstellung fort. Wenn nicht, können Sie die Konfiguration jederzeit auf den Standardwert zurücksetzen.

Durch Ändern der in den NGINX-Konfigurationsdateien wie nginx.conf und virtuellen Hostdateien konfigurierten Parameter können Sie NGINX hacken, um die beste Leistung zu erzielen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert