NGINX gzip_static 不起作用

NGINX gzip_static 不起作用

我在 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;
}

我的目标是在可用时以 gzip 压缩形式提供该文件夹中的静态内容。

我当然创建了如下文件:

test.js
test.js.gz

我可以访问每个文件,并且所有标头以及 etag 都正确设置。但是,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

答案1

您正在执行 proxy_pass,这就是问题所在。从服务器本身提供这些文件,即使用“root /some/path”指令,一切都应该正常工作。

相关内容