Todos os produtos
Search
Central de documentação

:Por que a compactação Gzip não entra em vigor para solicitações redirecionadas ao servidor de origem?

Última atualização: Jul 05, 2026

Descrição do problema

O servidor de origem de um nome de domínio acelerado pelo Alibaba Cloud CDNDCDN é um servidor NGINX com o recurso de compactação Gzip ativado. A compactação Gzip funciona normalmente quando um cliente solicita um recurso diretamente ao servidor de origem. No entanto, ela não entra em vigor se o cliente for redirecionado de um ponto de presença (POP) para o servidor de origem. Veja os detalhes abaixo:

Quando a compactação e a descompactação Gzip funcionam conforme o esperado, o servidor NGINX retorna o conteúdo compactado para reduzir o overhead de tráfego e acelerar a resposta. Contudo, após o uso do Alibaba Cloud CDNDCDN, as solicitações são redirecionadas dos POPs para o servidor de origem e os clientes recebem o conteúdo descompactado. Nesse cenário, o recurso de compactação Gzip no servidor de origem não surte efeito. Confira mais detalhes a seguir:

  • Sem o uso do Alibaba Cloud CDNDCDN, se os cabeçalhos da solicitação contiverem Accept-Encoding: gzip, deflate, o cabeçalho de resposta correspondente será Content-Encoding: gzip. Nesse caso, o conteúdo é compactado.

  • Com o uso do Alibaba Cloud CDNDCDN, mesmo que os cabeçalhos da solicitação contenham Accept-Encoding: gzip, deflate, o cabeçalho de resposta retornado será Content-Length, sem o retorno do cabeçalho Content-Encoding: gzip.

Causa

A configuração relacionada ao Gzip no servidor de origem NGINX está inválida, impedindo a ativação da compactação Gzip para solicitações redirecionadas ao servidor de origem. Entenda melhor o motivo:

O cabeçalho Via é adicionado à solicitação sempre que ela é redirecionada de um POP para o servidor de origem, indicando que provém de um proxy. Neste exemplo, o Alibaba Cloud CDNDCDN atua como esse proxy. Entretanto, o módulo ngx_http_gzip_module do NGINX possui o item de configuração gzip_proxied, responsável por controlar a ativação da compactação Gzip em solicitações via proxy. A presença do cabeçalho Via nos cabeçalhos da solicitação é um dos pré-requisitos para que essa configuração funcione. Portanto, o parâmetro gzip_proxied determina se a compactação Gzip será aplicada às solicitações de origem.

Solução

Caso enfrente o mesmo problema descrito na seção Descrição do problema, siga as etapas abaixo para atualizar o arquivo de configuração do NGINX. Se não conseguir identificar o problema, consulte a seção Referências.

  1. Localize os blocos relacionados ao Gzip nos arquivos de configuração do NGINX. É possível configurar o Gzip nos blocos http, server e location, que correspondem a diferentes arquivos de configuração. Neste exemplo, o Gzip está configurado no bloco http do arquivo nginx.conf.

  2. Verifique se o item de configuração gzip_proxied existe. Caso exista, modifique-o conforme a configuração a seguir. Se não existir, adicione a configuração abaixo. Para mais informações sobre o item gzip_proxied, consulte a documentação do NGINX.

    Nota

    Se o item de configuração gzip_proxied não existir, o valor padrão da configuração abaixo será off.

    gzip_proxied  any
    Nota

    O valor any indica que a compactação Gzip está ativada para todas as solicitações via proxy.

  3. Após salvar a configuração anterior, execute os comandos abaixo em sequência para confirmar as configurações do NGINX e recarregar seus arquivos de configuração.

    nginx -t
    nginx -s reload
  4. Ative o Alibaba Cloud CDNDCDN. Depois que as solicitações forem redirecionadas ao servidor de origem NGINX, verifique se a resposta contém o cabeçalho Content-Encoding: gzip. Em caso afirmativo, o conteúdo está compactado.

Referências

Siga as etapas abaixo para verificar se você enfrenta o mesmo problema descrito na seção Problema:

  1. Abra uma interface de linha de comando (CLI) compatível com o comando curl.

  2. Execute o seguinte comando curl para acessar o servidor de origem incluindo o cabeçalho Accept-Encoding: gzip, deflate.

    curl -voa 'http://[$Domain]/[$Resource]' -x [$Original_Server_IP]:80 -H 'Accept-Encoding: gzip, deflate'
    Nota
    • [$Domain]: seu nome de domínio.

    • [$Resource]: a URL de um recurso solicitado, como uma imagem ou uma operação de API.

    • [$Original_Server_IP]: o endereço IP público do servidor de origem NGINX.

    O sistema retorna uma resposta semelhante ao conteúdo abaixo. Verifique se o cabeçalho Content-Encoding: gzip foi retornado. 1.png

  3. Use o comando a seguir como base e adicione um cabeçalho Via ao comando da Etapa 2 para simular uma solicitação proveniente de um proxy.

    curl -voa 'http://[$Domain]/[$Resource]' -x [$Original_Server_IP]:80 -H 'Accept-Encoding: gzip, deflate' -H 'Via:xxx'
    Nota

    É possível usar qualquer valor para o cabeçalho Via, pois isso não afeta o resultado do teste. Neste exemplo, utilizamos xxx.

    O sistema retorna uma resposta semelhante ao conteúdo abaixo. Verifique se o cabeçalho retornado é Content-Length em vez de Content-Encoding: gzip. 2.png