私は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
あなたはproxy_passをやっています、それが問題です。サーバー自体から、つまり「root/some/path」ディレクティブを使用してこれらのファイルを提供すると、すべてが機能するはずです。