Acabo de probar esto en un servidor nginx que tengo sentado frente a un servidor de Apache.
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
rizo agregado automáticamente:
Expect: 100-continue
a los encabezados de solicitud.
nginx devolvió un
HTTP/1.1 100 Continue
respuesta y rizo seguidos enviando los datos comprimidos. nginx devolvió todo el lote a Apache, todavía comprimido y con el Content-Encoding:
encabezado intacto.
Si no agregué el Content-Encoding: gzip
encabezado con curl, no obtuve la respuesta HTTP 100 pero todo lo demás fue igual.
Esto aún no responde a su pregunta, pero sí implica que nginx no maneja esto de manera predeterminada o no descomprime el cuerpo de la solicitud cuando está representando. Estoy interesado en la respuesta a esta pregunta, así que veré si puedo probarlo en un servidor nginx no proxy un poco más adelante.
Presumiblemente, podría resolver el problema del ancho de banda enviando esas solicitudes a un backend de Apache con mod_deflate, pero eso ignora la razón por la que eligió nginx en primer lugar.