我知道你可以使用nginx HttpGzip模組到 gzip回應。你也可以用它來讓 nginx 處理 gzip 壓縮嗎要求,即有請求標頭的:Content-Encoding: gzip
?
注意:Apache 在 的幫助下mod_deflate
可以使用指令處理 gzip 壓縮請求SetInputFilter DEFLATE
。
有關的
答案1
我剛剛在 Apache 後端前面的 nginx 伺服器上嘗試過這個。
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
自動添加curl:
Expect: 100-continue
到請求標頭。
nginx 發回了一個
HTTP/1.1 100 Continue
回應和curl 隨後發送gzip 壓縮的資料。 nginx 將全部資料傳回 Apache,仍然是壓縮的且Content-Encoding:
標頭仍然完好無損。
如果我沒有Content-Encoding: gzip
使用curl 新增標頭,我就不會收到 HTTP 100 回應,但其他一切都是一樣的。
這還沒有回答你的問題,但它確實意味著 nginx 要么默認不處理這個問題,要么在代理時不解壓縮請求的正文。我對這個問題的答案很感興趣,所以稍後我會看看是否可以在非代理 nginx 伺服器上嘗試。
想必您可以透過使用 mod_deflate 將這些請求代理到 Apache 後端來解決頻寬問題,但這忽略了您首先選擇 nginx 的原因。
答案2
剛剛找到這篇文章:如何讓 Nginx 解壓縮 gzip 請求
看起來不錯,但我還沒有嘗試過。希望能幫助你。
答案3
我在數位海洋上找到了很好的步驟烏班圖14.04
很好