戴着我的系统管理员帽子,我的一位应用程序开发人员向我提出了这个问题:
在他的app目录中,他在app / assets / javascripts和app / public / javascripts中有javascript文件。在public / javascripts目录中,有未压缩和.gz文件。期望nginx将服务于javascripts的压缩版本。
在应用程序的nginx配置文件中,我添加了这个:
location /javascripts {
gzip on;
gzip_static on;
try_files /srv/app_dir/current/public/$uri /srv/app_dir/current/assets/$uri;
}
使用这些参数,应用程序运行正常。找到并提供所有.js文件。但是nginx从未找到并提供文件的gzip版本。
有关此问题的任何建议?
答案 0 :(得分:0)
Nginx 1.6上不需要未压缩的文件:
location ~ \.txt$ {
gzip_static on;
gunzip on;
}
curl http://localhost/index.txt
和curl -H "Accept-Encoding: gzip" http://localhost/index.txt | gunzip
现在只能在我的根目录中找到/srv/www/localhost/index.txt.gz
。
答案 1 :(得分:0)
我刚刚尝试了@hendry在nginx / 1.13.8上的答案,但它不起作用。当我使用“gzip_static always”时它开始工作了而不是“gzip_static on;”。
location /fd/ {
gunzip on;
gzip_static always;
}
cURL输出:
$ curl --silent -H "Accept-encoding: gzip" "http://myhost.com/fd/test.txt" | file -
/dev/stdin: gzip compressed data, from Unix
$ curl --silent "http://myhost.com/fd/test.txt" | file -
/dev/stdin: ASCII text