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
1. Statischer Ressourcentyp
类型 | 文件类型 |
---|---|
浏览器端渲染 | HTML、CSS、JS |
图片 | JEPG、GIF、PNG |
视频 | FLV、MPEG |
文件 | TXT等其他下载文件 |
2. Statisches Ressourcendienstszenario – CDN
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.
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.
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
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!