GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Filtern und optimieren Sie statische Dateianfragen mit NGINX auf Ubuntu 18.04

NGINX ist ein Hochleistungs-Webserver, der insbesondere zur Verwaltung statischer Dateien und als Reverse-Proxy verwendet wird, aber dank seiner Vielseitigkeit in jeder Situation eingesetzt werden kann.

In dieser Anleitung erfahren Sie, wie Sie statische Dateianfragen mit NGINX filtern und optimieren, um die Leistung Ihrer Website zu steigern und die Serverlast zu reduzieren, indem Sie einige Tricks anwenden, z. B. das Aktivieren der Gzip-Komprimierung, das Ändern der Anzahl der Prozesse / Verbindungen oder die Größe der Puffer.

Verbinden Sie sich zunächst über eine SSH-Verbindung mit Ihrem Server. Wenn Sie dies noch nicht getan haben, wird empfohlen, unseren Leitfaden zu befolgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers gehen Sie zum nächsten Schritt und öffnen Sie das Terminal Ihres Servers.

Änderung der Konfigurationsparameter

Öffnen Sie die NGINX-Konfigurationsdatei mit einem Editor wie nano oder vi. Für dieses Beispiel wurde Nano verwendet.

$ sudo nano /etc/nginx/nginx.conf

Gzip-Komprimierung aktivieren

Durch Aktivierung der Gzip-Komprimierung kann die zu übertragende Datenmenge reduziert werden. Achten Sie darauf, die Komprimierungsstufe von Gzip nicht zu stark zu erhöhen, da dies die CPU-Leistung beeinträchtigen kann.

gzip             on;

gzip_comp_level  2;

gzip_min_length  1000;

gzip_proxied     expired no-cache no-store private auth;

gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Anzahl der Prozesse und Verbindungen festlegen

Der Parameter ‚worker_processes‘ bezieht sich auf die Anzahl der Prozesse, die von NGINX nach dem Start instanziiert werden. Die Anzahl der Prozesse sollte normalerweise gleich der Anzahl der Kerne auf dem Server sein. Wenn der Server beispielsweise einen Prozessor mit 4 Kernen hat, muss der Parameter mit dem Wert 4 wie folgt gesetzt werden:

worker_processes 4;

Der Parameter worker_connections bezieht sich auf die Anzahl der Clients, die von einem einzelnen Prozess bedient werden. Um einen optimalen Wert für die Konfiguration einzustellen, müssen Sie lediglich die Grenzen Ihrer Kerne mit dem Befehl:

überprüfen
$ ulimit -n

Das Ergebnis ist die maximale Anzahl von Verbindungen pro Prozess. Dann, um es einzustellen:

worker_processes 1024;

Ändern der Puffergröße

Wenn die Größe der Puffer zu gering ist, wird NGINX gezwungen, temporäre Dateien zu erstellen, was zahlreiche Festplattenoperationen verursacht. Um dies zu vermeiden, stellen Sie die Größe der Puffer richtig ein.

client_max_body_size:gibt die maximale Größe der Client-Anfrage an

client_body_buffer_size:bezieht sich auf die Puffergröße für POST-Anfragen

client_header_buffer_size:bezieht sich auf die Puffergröße relativ zum Client-Request-Header

Durch Ändern dieser Parameter mit den folgenden Werten sollte ein gutes Ergebnis erzielt werden:

client_max_body_size 8m;

client_body_buffer_size 10K;

client_header_buffer_size 1k;

Dauer des Caches ändern

Um die Dauer des Caches für statische Dateien zu verwalten, müssen Sie lediglich die Dateierweiterungen und ihre Dauer auf diese Weise angeben:

location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {

expires 365d;

}

wobei bei 365d angegeben ist, dass der Cache für seine Erweiterungen 365 Tage dauern wird.

Timeouts reduzieren

Die Parameter client_body_timeout und client_header_timeout geben jeweils die Wartezeit für den Body oder Header der Anfrage an. Erhält der Server innerhalb dieser Zeit weder Body noch Header, \ wird die Verbindung mit einem Timeout-Fehler beendet.

Der Parameter send_timeout gibt die maximale Zeit zwischen zwei Lesevorgängen an. wenn diese Zeit überschritten wird, beendet NGINX die Verbindung mit dem Client.

Stattdessen bezieht sich der Parameter keepalive_timeout auf die maximale Dauer einer Keepalive-Verbindung, bevor sie beendet wird.

Indem Sie diese Werte wie folgt einstellen, sollte ein gutes Ergebnis erzielt werden:

client_body_timeout 12;

client_header_timeout 12;

send_timeout 10;

keepalive_timeout 15;

Protokolle deaktivieren

NGINX überwacht jede Anfrage in einer Protokolldatei. Um diese Funktion zu deaktivieren, müssen Sie lediglich den Parameter access_log wie folgt ändern:

access_log off;

Änderungen übernehmen

Starten Sie den NGINX-Dienst neu, um die Änderungen zu implementieren:

$ sudo service nginx restart

Linux
  1. So installieren Sie phpMyAdmin mit HHVM, Nginx und MariaDB auf einem Ubuntu 14.04 VPS

  2. Installieren Sie Redmine auf einem Ubuntu 14.04-Server mit MariaDB, Puma und Nginx.

  3. Installieren Sie WordPress mit Varnish und Nginx auf Ubuntu

  4. So optimieren Sie das Cachen statischer Apache-Dateien unter Ubuntu 18.04

  5. Installieren Sie phpMyAdmin auf Ubuntu 20.04 mit Nginx

So installieren Sie Nginx unter Ubuntu 14.04

So installieren Sie Nginx, MySQL und PHP (LEMP) auf einem Ubuntu 15.04-Server

So installieren Sie NGINX unter Ubuntu 20.04

So fügen Sie PHP-FPM-Unterstützung auf Apache und Nginx-Webserver auf Ubuntu 18.04 hinzu

So richten Sie einen Seafile-Server mit Nginx unter Ubuntu 18.04 ein

Installieren und konfigurieren Sie Varnish Cache mit Nginx Web Server unter Ubuntu 18.04