Como configuro o nginx para aceitar solicitações gzip?

17

Eu sei que você pode usar nginx HttpGzipModule para gzip respostas . Você também pode usá-lo para permitir que o nginx manipule solicitações gzip-compactadas, ou seja, aquelas com o cabeçalho da solicitação: Content-Encoding: gzip ?

Observação: o Apache, com a ajuda de mod_deflate , pode manipular solicitações compactadas pelo gzip com a diretiva SetInputFilter DEFLATE .

Relacionado

link

    
por ma11hew28 23.11.2011 / 21:08

2 respostas

5

Eu apenas tentei isso em um servidor nginx que estou sentado na frente de um backend do Apache.

curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php

curl adicionado automaticamente:

Expect: 100-continue

para os cabeçalhos de solicitação.

nginx enviou de volta um

HTTP/1.1 100 Continue

resposta e curl seguidas enviando os dados gzipados. O nginx passou o lote inteiro de volta ao Apache, ainda compactado e ainda com o cabeçalho Content-Encoding: intacto.

Se eu não adicionasse o cabeçalho Content-Encoding: gzip com curl, não obtive a resposta HTTP 100, mas tudo o mais foi o mesmo.

Isso não responde à sua pergunta ainda, 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 a esta pergunta, para ver se posso testá-la em um servidor nginx sem proxies um pouco mais tarde.

Presumivelmente, você poderia resolver o problema de largura de banda fazendo proxy dessas solicitações para um backend do Apache com o mod_deflate, mas isso ignora o motivo pelo qual você escolheu o nginx em primeiro lugar.

    
por 23.11.2011 / 22:04
1

Acabou de encontrar este artigo: Como fazer o Nginx descomprimir uma solicitação gzipada?

Parece bom, mas ainda não tentei. Espero que ajude.

    
por 15.09.2015 / 16:58