Heim  >  Artikel  >  Backend-Entwicklung  >  Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

不言
不言Original
2018-08-06 11:36:562875Durchsuche

Dieser Artikel stellt Ihnen Nginx als statischen Ressourcen-Webdienst und die statische Ressourcenkomprimierung vor. Ich hoffe, dass er für Freunde hilfreich ist.

1. Statischer Ressourcen-Webdienst

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

1. Statischer Ressourcentyp

类型 文件类型
浏览器端渲染 HTML、CSS、JS
图片 JEPG、GIF、PNG
视频 FLV、MPEG
文件 TXT等其他下载文件

2. Statisches Ressourcendienstszenario – CDN

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

2. Statische Ressourcenkernkonfiguration

1. Datei lesen sendfile

sendfile ist ein effizienter Modus zum Übertragen von Dateien
Sendfile ist aktiviert, um einen effizienten Start anzuzeigen Der Modus zum Übertragen von Dateien. Mit sendfile kann Nginx beim Übertragen von Dateien Daten direkt zwischen Festplatte und TCP-Socket übertragen. Wenn dieser Parameter nicht aktiviert ist, gilt er zunächst für einen Puffer im Benutzerbereich (Nginx-Prozessbereich). Verwenden Sie die Lesefunktion, um die Daten von der Festplatte in den Cache zu lesen, und lesen Sie dann den Puffer im Benutzerbereich aus dem Cache. Verwenden Sie dann die Schreibfunktion, um die Daten aus dem Benutzerbereich zu lesen. Der Speicherplatzpuffer wird in den Kernelpuffer und schließlich in den TCP-Socket geschrieben. Nach dem Einschalten dieses Parameters müssen die Daten nicht den Benutzerpuffer durchlaufen.

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

Grammatik

Syntax:        sendfile on | off;
Default:    sendfile off;
Context:    http, server, location, if in location

2. tcp_nopush

verbessert die Übertragungseffizienz von Netzwerkdatenpaketen, wenn Sendfile aktiviert ist.
Der Befehl tcp_nopush aktiviert TCP_CORK unter Linux beim Herstellen einer Verbindung zu einem Socket. Diese Option weist den TCP-Stack an, Pakete anzuhängen und zu senden, wenn sie voll sind oder wenn die Anwendung durch explizites Entfernen von TCP_CORK das Senden von Paketen angibt. Dies ermöglicht den Versand einer optimalen Menge an Datenpaketen und erhöht somit die Effizienz der Netzwerkpaketübertragung.
Das heißt, wenn tcp_nopush=on ist, wird das Datenpaket nicht sofort übertragen. Wenn das Datenpaket das größte ist, wird es jedoch sofort übertragen es wird zu einer leichten Verzögerung kommen.

Syntax

Syntax:        tcp_nopush on | off;
Default:    tcp_nopush off;
Context:    http, server, location

3. tcp_nodelay

Verbessern Sie unter Keepalive-Verbindung die Echtzeitübertragung von Netzwerkdatenpaketen.
Die Option tcp_nodelay ist genau das Gegenteil von tcp_nopush. Datenpakete werden in Echtzeit ohne Wartezeit an den Benutzer gesendet.

Syntax

Syntax:        tcp_nodelay on | off;
Default:    tcp_nodelay off;
Context:    server, location

4. Komprimierung

Aktivieren Sie die Komprimierung, um die Ressourcenantwort zu beschleunigen und Netzwerkbandbreitenressourcen zu sparen.

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

ngx_http_gzip_module

Syntax

Komprimierung einschalten und aus

Syntax:        gzip on | off;
Default:    gzip off;
Context:    http, server, location, if in location

Komprimierungsstufenkonfiguration (je höher die Komprimierungsstufe, desto mehr Serverressourcen werden verbraucht)

Syntax:    gzip_comp_level level;
Default:    gzip_comp_level 1;
Context:    http, server, location

gzip-Protokollversionskonfiguration

Syntax:    gzip_http_version 1.0 | 1.1;
Default:    gzip_http_version 1.1;
Context:    http, server, location

Komprimierungserweiterungsmodul

Gzip-Funktion ngx_http_gzip_static_module vorlesen

Syntax:    gzip_static on | off | always;
Default:    gzip_static off;
Context:    http, server, location

Die Anwendung unterstützt die Gunzip-Komprimierungsmethode ngx_http_gunzip_module

Syntax:    gunzip on | off;
Default:    gunzip off;
Context:    http, server, location

Syntax:    gunzip_buffers number size;
Default:    gunzip_buffers 32 4k|16 8k;
Context:    http, server, location

Beispiel für statische Ressourcenkomprimierung

1. vim /etc/nginx/conf.d/static.conf

server {
    #开启sendfile,提高网络包的传输效率
    sendfile on;

    #配置txt|xml资源的路径
    location ~ .*\.(txt|xml)$ {
        #开启压缩
        gzip on;
        gzip_http_version 1.1;
        gzip_comp_level 1;
        gzip_types text/plain application/xml;
        root /vagrant/doc;
    }
}

2 Datei

3. Erstellen Sie die Datei /vagrant/doc/a.txt und überprüfen Sie die Dateigröße

[root/etc/nginx]# curl http://www.sina.com.cn/ > /vagrant/doc/a.txt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  557k  100  557k    0     0   488k      0  0:00:01  0:00:01 --:--:--  488k

[root/etc/nginx]# ll /vagrant/doc/a.txt
-rwxrwxrwx 1 vagrant vagrant 558K 7月  11 10:57 /vagrant/doc/a.txt*

Es ist ersichtlich, dass die Datei a.txt Die Dateigröße beträgt 558 KB

4. Greifen Sie über Curl auf 192.168.33.88/a.txt zu und überprüfen Sie die HTTP-Antwortheaderinformationen

[root/etc/nginx]# curl -I 192.168.33.88/a.txt -H Accept-Encoding:gzip,defalte
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Wed, 11 Jul 2018 11:01:43 GMT
Content-Type: text/plain
Last-Modified: Wed, 11 Jul 2018 10:57:22 GMT
Connection: keep-alive
ETag: W/"5b45e292-8b47f"
Content-Encoding: gzip

Sie können es aus dem Antwortheader sehen Informationen, dass der Server die GZIP-Komprimierung verwendet

5. Greifen Sie über den Browser auf 192.168.33.88/a.txt zu und verwenden Sie Entwicklertools, um die Größe der angeforderten Datei zu überprüfen

Nginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch

Es ist ersichtlich, dass die angeforderte Datei nach der gzip-Komprimierung von 558 KB auf 148 KB komprimiert wird und die Komprimierungsrate sehr hoch ist.

6. Darüber hinaus können Sie die Größe der übertragenen Datei auch über das nginx access.log-Protokoll überprüfen

[root/etc/nginx]# tail /var/log/nginx/access.log
192.168.33.1 - - [11/Jul/2018:11:02:46 +0000] "GET /a.txt HTTP/1.1" 200 151549 "-" "Chrome/67.0.3396.99" "-"

Es ist ersichtlich, dass die Größe der übertragenen Datei ist 151549, die Einheit ist B, die Konvertierungs-KB beträgt ungefähr 148 KB.

Verwandte Empfehlungen:

Nginx-Startfehler, Nginx-Reverse-Proxy, Nginx, was ist Nginx-lastig?

Nginx-Installation von lua-nginx - Modul Modul

Nginx-Skripte unter Linux erstellen -starten, stoppen, neu laden..., nginx-start_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonNginx dient als statischer Ressourcen-Webdienst und führt eine statische Ressourcenkomprimierung durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn