Isso pode ser um bug fixo. Pelo menos eu não observo o comportamento em 0.8.54. Tente atualizar seu nginx se não for o mais recente.
Estou desenvolvendo um serviço da Web rails com ngnix + passenger e uso cache de proxy reverso no nginx. Funciona muito bem e muito rápido. O problema é que alguns clientes não suportam gzip enquanto outros suportam.
O que eu descobri é que o nginx armazena em cache o conteúdo gzip, portanto, se os clientes suportados pelo gzip solicitarem primeiro, então os clientes não-gzip solicitam, o servidor ainda retorna o conteúdo gzip mesmo que o cliente envie o cabeçalho "Accept-Encoding ":" ".
gzip on;
gzip_http_version 1.0;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
Você precisa armazená-los em cache separadamente, combinando o request_uri e o cabeçalho 'Accept-Encoding'?
Isso pode ser um bug fixo. Pelo menos eu não observo o comportamento em 0.8.54. Tente atualizar seu nginx se não for o mais recente.
Você deve adicionar $http_accept_encoding
ao seu cache key ou use o módulo gunzip .
Tags nginx reverse-proxy