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. Die Konfigurationsdateien finden Sie in der /etc/nginx Verzeichnis auf einem Linux-Rechner.
Was ist NGINX?
NGINX ist ein moderner Webserver, den Sie als Medienstreamer, Mailserver, Reverse-Proxy, Load Balancer, Cache-Server und mehr.
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:
- Ein unter Linux bereitgestellter und konfigurierter NGINX-Server
- 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 wird auf gesetzt Auto standardmäßig. 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 Prozessor /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.
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 die dann ändern worker_connections -Variable in der NGINX-Konfigurationsdatei, 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 an;
gzip_vary on;
gzip_min_length 10240;
gzip_proxyed abgelaufen nein-ZwischenspeicherNEIN-speichernPrivatgelände Authentifizierung;
gzip_types Text/Klartext/CSS-Text/XML-Text/Javascript-Anwendung/X-Javascript-Anwendung/XML;
gzip_disable "MSIE [1-6]\.";
}
4. Timeout-Wert in NGINX begrenzen
Reduzierte Timeout-Werte spielen auch eine wichtige Rolle bei der Verbesserung der NGINX-Leistung. Der bleib am Leben 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. Zugriffsprotokolle deaktivieren oder Pufferung von Zugriffsprotokollen aktivieren
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.loghauptsächlichPuffer=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 die Datei des virtuellen Hosts ein, die sich in der befindet /etc/nginx/sites-available Verzeichnis:
Standort ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
läuft 90d ab;
}
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 in die hinzu http Abschnitt in der Konfigurationsdatei, um den Cache für offene Dateien zu aktivieren:
http {
open_file_cache max=1024 inaktiv=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors an;
}
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 konfigurierten Parameter wie z nginx.conf und virtuellen Hostdateien können Sie NGINX hacken, um die beste Leistung zu erzielen.