我安装了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)
有办法防止这种情况吗?
我找到了解决方案.事实上,两种可能的解决方案:
将javascript和CSS文件保存在单独的目录中,并创建"location"规则以仅对该目录使用gzip_static
如果这是不可能的(托管多个网站,而不是你控制的一切,太多的目录和文件)有一个更简单的解决方案,通过使用open_file_cache_errors设置来阻止多个open()调用,该设置缓存(即记住).gz文件不是目前并不试图再次打开它.
| 归档时间: |
|
| 查看次数: |
1458 次 |
| 最近记录: |