私は現在、すべての静的ファイルを提供するためにNginxをセットアップしようとしています。あまり頻繁に変更されないので、gzip_staticモジュールを使用して、ファイルのコピーを事前にgzipして、CPU時間を節約し、圧縮率を高めたいと思います。
Nginxをコンパイルし--with-http_gzip_static_module
て、静的ファイルを提供するように設定しました。これまでのところ問題ありません。テストして静的gzippingが実際に機能していることを確認したかったので、2つのファイルを作成test.txt
しましたtest.txt.gz
。各ファイルの最初の行は、それらがgzipされたかどうかを示し、次に改行と256のランダムな文字があります(2つのファイル間で異なります)。
ファイルの変更時刻とgzip圧縮されたファイルの変更時刻は同じであることを確認しました。次の両方を試しました。
touch test.*
touch -r test.txt test.txt.gx
私のローカルマシンでは、curlを使用してテストしています。
curl $URL/test.txt
これはうまく機能し、事前に圧縮していないバージョンを返しますが、これを行うと:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
私はまた、私は予備圧縮しませんでしたバージョンを取り戻します。に設定gzip off
してみましたnginx.conf
が、違いはありません。私もNginxを再コンパイルしましたが--without-http_gzip_module
、それでも違いはないようです。Nginxは、その場でgzip自体をgzipします。
私はNginxを初めて使用しますが、ここでは本当に困っています。
これはの出力です ./nginx -V
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --sbin-path=$SOMEPATH/nginx --prefix=$SOMEPATH --user=$ME --group=$MYGROUP --with-http_gzip_static_module --without-http_gzip_module
そして、これが私の nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
error_log logs/error.log;
pid logs/nginx.pid;
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
gzip_static on;
sendfile on;
keepalive_timeout 65;
access_log logs/access.log;
server {
listen XXXX;
server_name foo.bar.com;
location / {
root html;
}
error_page 404 404.html;
error_page 500 502 503 504 50x.html;
}
}
どんな助けでも大歓迎です!