Ich verwende den Nginx-Reverse-Proxy-Cache mit aktiviertem gzip. Ich habe jedoch einige Probleme aufgrund von HTTP-Anfragen von Android-Anwendungen an meinen Rails JSON-Webdienst. Wenn ich den Reverse-Proxy-Cache ausschalte, funktioniert er anscheinend in Ordnung, da der Antwortheader ohne gzip geliefert wird. Daher denke ich, dass das Problem durch gzip verursacht wird. Was ist die am besten geeignete Stufe der GZIP-Komprimierung?
gzip on;
gzip_http_version 1.0;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
Ich habe dies unter Nginx 1.3.9 mit zwei Dateien getestet, und dies waren die Ergebnisse, die ich für die verschiedenen Ebenen erhalten habe:
text/html
- phpinfo ():application/x-javascript
- jQuery 1.8.3 (nicht komprimiert):Ich bin nicht sicher, wie repräsentativ dies ist, aber es sollte als Beispiel dienen. Ich habe auch die CPU-Auslastung nicht berücksichtigt, aber aus diesen Ergebnissen scheint die ideale Komprimierungsstufe zwischen
4
und zu liegen6
.Wenn Sie das
gzip_static
Modul verwenden, möchten Sie möglicherweise Ihre Dateien vorkomprimieren (in PHP):Auf diese Weise können Sie die bestmögliche Komprimierung erzielen, ohne bei jeder Anforderung die CPU zu belasten.
quelle
Wenn Sie wirklich CPU-Ressourcen sparen können, können Sie 9 verwenden, aber für die meisten Sites ist ein Wert von 2 ausreichend, da gzip die Datei nach Stufe 1 nicht wesentlich verkleinert.
Bearbeiten: Ich habe mir Amazon CloudFront angesehen und es scheint, als würde es Level 6 verwenden, wahrscheinlich weil dieses Level die Dekomprimierung beschleunigt und somit die Leistung beim Rendern von Seiten verbessert.
quelle
Wenn Sie eine Website mit hohem Volumen haben und dennoch eine vollständige Komprimierungsstufe (9) wünschen, ist es am besten, Ihren statischen Inhalt auf Amazon S3 oder ähnliche Objektspeicherdienste zu stellen und die komprimierten Dateien hochzuladen.
Sie möchten immer noch nginx verwenden, um Ihr HTML zu komprimieren. Um diesen Wert also auf dem normalen Wert zu halten, verwende ich dort 5.
quelle
comp_level
in meine Konfiguration aufgenommen, sodass ich nicht sagen kann, auf welchem Level ich mich gerade befinde. Wissen Sie, wie die Standardeinstellungen lauten? Quelle?