У меня есть следующая конфигурация 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;
}
Моя цель - обслуживать статический контент в этой папке в сжатом виде, когда он доступен.
Я, конечно, создал такие файлы, как:
test.js
test.js.gz
Я могу добраться до каждого файла, и все заголовки установлены правильно, а также etags. Однако получение gzip не работает. Например, я тестировал это так:
curl -H "Accept-Encoding: gzip" http://domain.com/assets/test.js | gunzip
## Cutted useless output
gunzip: unknown compression format
Думаю, это не работает. Я также пробовал слушать:
strace -p pid1 -p pid2 -p pid3.... 2>&1 | grep gz
без везения.
И, конечно, если я это сделаю:
curl http://domain.com/assets/test.js.gz | gunzip
## Cutted useless output
все работает отлично.
Есть подсказки?
nginx -v = nginx version: nginx/1.8.0
#--with-http_gunzip_module --with-http_gzip_static_module are present
вы делаете proxy_pass, вот в чем проблема. обслуживайте эти файлы с самого сервера, то есть используя директиву root / some / path, и все должно работать.