Eu apenas tentei isso em um servidor nginx que eu estava sentado na frente de um servidor Apache.
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
ondulação adicionada automaticamente:
Expect: 100-continue
para os cabeçalhos da solicitação.
nginx enviou de volta um
HTTP/1.1 100 Continue
resposta e enrolamento seguidos enviando os dados compactados em gzip. O nginx passou todo o lote de volta para o Apache, ainda compactado e com o Content-Encoding:
cabeçalho intacto.
Se não adicionei o Content-Encoding: gzip
cabeçalho com curl, não recebi a resposta HTTP 100, mas todo o resto foi o mesmo.
Isso ainda não responde à sua pergunta, mas implica que o nginx não lida com isso por padrão ou não descompacta o corpo da solicitação quando está fazendo proxy. Estou interessado na resposta para este, para ver se posso testá-lo em um servidor nginx sem proxy um pouco mais tarde.
Presumivelmente, você pode resolver o problema da largura de banda ao proxies dessas solicitações para um backend do Apache com mod_deflate, mas isso ignora o motivo pelo qual você escolheu o nginx em primeiro lugar.