Ich weiß, dass Sie verwenden könnennginx HttpGzipModulin gzipAntworten. Kann man es auch verwenden, um nginx zu befähigen, gzip-komprimierteAnfragen, also solche mit dem Anforderungsheader: Content-Encoding: gzip
?
Hinweis: Apache kann mit Hilfe von mod_deflate
gzip-komprimierte Anfragen mit der Direktive verarbeitenSetInputFilter DEFLATE
.
Verwandt
Antwort1
Ich habe dies gerade auf einem Nginx-Server ausprobiert, der vor einem Apache-Backend sitzt.
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
curl hat automatisch hinzugefügt:
Expect: 100-continue
zu den Anforderungsheadern.
nginx hat eine
HTTP/1.1 100 Continue
Response und Curl haben anschließend die gzippten Daten gesendet. Nginx hat alles an Apache zurückgegeben, immer noch komprimiert und mit Content-Encoding:
intaktem Header.
Wenn ich den Header nicht mit curl hinzugefügt habe Content-Encoding: gzip
, habe ich keine HTTP 100-Antwort erhalten, aber alles andere war gleich.
Dies beantwortet Ihre Frage noch nicht, impliziert aber, dass nginx dies entweder nicht standardmäßig verarbeitet oder den Hauptteil der Anfrage beim Proxying nicht dekomprimiert. Die Antwort darauf interessiert mich, daher werde ich sehen, ob ich es später auf einem nicht-proxynden nginx-Server ausprobieren kann.
Vermutlich könnten Sie das Bandbreitenproblem lösen, indem Sie diese Anfragen mit mod_deflate an ein Apache-Backend weiterleiten, aber das ignoriert den Grund, warum Sie sich überhaupt für nginx entschieden haben.
Antwort2
Habe gerade diesen Artikel gefunden:So lässt man Nginx eine gzippte Anfrage dekomprimieren
Es sieht gut aus, aber ich habe es noch nicht ausprobiert. Hoffe, es hilft.
Antwort3
Ich habe gute Schritte auf Digital Ocean gefunden fürUbuntu 14.04
Das ist gut