você está fazendo proxy_pass, esse é o problema. servir esses arquivos do próprio servidor, ou seja, usando a diretiva "root / some / path", e tudo deve funcionar.
Eu tenho o seguinte conf nginx:
location ~* ^/assets/ {
add_header Access-Control-Allow-Headers content-type;
add_header Access-Control-Allow-Origin *;
add_header Cache-Control "public, max-age=31536000";
proxy_pass http://nas-mydomain.com;
proxy_next_upstream http_500 timeout;
gzip_http_version 1.0;
gzip_static always;
gzip_vary on;
etag on;
}
Meu objetivo é veicular o conteúdo estático nessa pasta no formato compactado, quando disponível.
Eu, claro, criei arquivos como:
test.js
test.js.gz
Eu posso alcançar cada arquivo e todos os cabeçalhos estão corretamente definidos, bem como os etags. No entanto, a recuperação do gzip não está funcionando. Por exemplo, eu testei assim:
curl -H "Accept-Encoding: gzip" http://domain.com/assets/test.js | gunzip
## Cutted useless output
gunzip: unknown compression format
Então eu acho que não está funcionando. Eu também tentei ouvir com:
strace -p pid1 -p pid2 -p pid3.... 2>&1 | grep gz
sem sorte.
E, claro, se eu fizer isso:
curl http://domain.com/assets/test.js.gz | gunzip
## Cutted useless output
tudo funciona perfeitamente.
Alguma dica?
nginx -v = nginx version: nginx/1.8.0
#--with-http_gunzip_module --with-http_gzip_static_module are present
você está fazendo proxy_pass, esse é o problema. servir esses arquivos do próprio servidor, ou seja, usando a diretiva "root / some / path", e tudo deve funcionar.
Tags gzip nginx linux web-server