web-dev-qa-db-ja.com

NGINXgzip_staticが機能しない

私はnginxに次のconfを持っています:

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」ディレクティブを使用してこれらのファイルを提供すると、すべてが機能するはずです。

1
user2708750