如何配置 nginx 以接受 gzip 请求?

ma1*_*w28 20 nginx gzip request

我知道您可以使用nginx HttpGzipModule来 gzip响应。您是否也可以使用它来启用 nginx 处理 gzip 压缩的请求,即具有请求标头的请求:Content-Encoding: gzip

注意:Apache 借助mod_deflatecan 处理带有指令的 gzip 压缩请求SetInputFilter DEFLATE

有关的

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

Lad*_*ada 7

我刚刚在我坐在 Apache 后端前面的 nginx 服务器上尝试了这个。

curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
Run Code Online (Sandbox Code Playgroud)

curl 自动添加:

Expect: 100-continue
Run Code Online (Sandbox Code Playgroud)

到请求标头。

nginx 发回了一个

HTTP/1.1 100 Continue
Run Code Online (Sandbox Code Playgroud)

response 和 curl 紧接着发送 gzip 压缩的数据。nginx 将整个文件传回 Apache,仍然被压缩并且Content-Encoding:头部仍然完好无损。

如果我没有Content-Encoding: gzip用 curl添加标头,我就不会得到 HTTP 100 响应,但其他一切都是一样的。

这还没有回答你的问题,但它确实意味着 nginx 要么默认不处理这个问题,要么在代理时不解压缩请求的主体。我对这个问题的答案很感兴趣,所以稍后我会看看是否可以在非代理 nginx 服务器上尝试一下。

据推测,您可以通过使用 mod_deflate 将这些请求代理到 Apache 后端来解决带宽问题,但这忽略了您首先选择 nginx 的原因。