Wie konfiguriere ich Nginx, um GZIP-Anfragen zu akzeptieren?

Wie konfiguriere ich Nginx, um GZIP-Anfragen zu akzeptieren?

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_deflategzip-komprimierte Anfragen mit der Direktive verarbeitenSetInputFilter DEFLATE.

Verwandt

http://forum.nginx.org/read.php?11,96472,214266

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

verwandte Informationen