【发布时间】:2014-01-30 02:19:13
【问题描述】:
我已经设置了 nginx 来提供文件的 gzip 版本(使用脚本 gzip)。我不希望对图像(png 和其他)进行 gzip 压缩。所以我用过
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
仍然 nginx 正在寻找 strace 中看到的压缩版本。
open("<path>/static/assets/<path>/up.png.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory).
我使用 gzip_types 有什么问题吗?
【问题讨论】:
-
这只是显示 nginx 打开 .gz 文件以读取和发送,这就是你想要的,对吧?你的 gzip_types 看起来不错。在 curl 等中执行请求,并查看 nginx 为文件请求返回的标头。 (不要相信你的浏览器,还有一些杀毒产品 ungzip 也可以检查)
-
消息说“没有这样的文件或目录”,这是正确的,因为文件不存在。我没有压缩图像文件。但我不希望 nginx 搜索 gzip 版本的图像文件,然后回退到非 gzip 文件。这是一个很小的开销,对吧?我希望 nginx 查找某些类型(css、java 脚本...)的压缩版本,并立即使用原始文件获取图像。
-
所以您请求 up.png 并且您看到 nginx 打开“up.png.gz”?你在nginx中打开缓存了吗? >>检查 nginx 配置中的 gzip_static。
-
我确实打开了 gzip_static。但是如果我指定 gzip_types 并省略 png 和其他图像文件,nginx 不会自动避免查找它们吗?还是说 gzip_types 指令不适用于静态文件?
-
此链接提供了答案 - [参考] [1]:stackoverflow.com/questions/3972675/…