如何告诉gzip_static不要查找图像文件?

Mil*_*kov 3 nginx

我安装了nginx并激活了gzip_static.它适用于CSS和JavaScript文件,但它也查找gzip版本的图像文件,如.png和.gif,虽然这些不在要压缩的文件列表中:

# strace -p 25044 2>&1 | grep gz
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 438
open("/var/www/images/tools.png.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/ads/bs.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/gfxborder/border_right.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/images/ads/hocuto03.gif.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

这是我的nginx配置:

gzip  on;
gzip_disable     "msie6";
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript text/javascript;
gzip_static on;
Run Code Online (Sandbox Code Playgroud)

有办法防止这种情况吗?

Mil*_*kov 5

我找到了解决方案.事实上,两种可能的解决方案:

  1. 将javascript和CSS文件保存在单独的目录中,并创建"location"规则以仅对该目录使用gzip_static

  2. 如果这是不可能的(托管多个网站,而不是你控制的一切,太多的目录和文件)有一个更简单的解决方案,通过使用open_file_cache_errors设置来阻止多个open()调用,该设置缓存(即记住).gz文件不是目前并不试图再次打开它.