我安装了 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)
这是我的 nginx 配置:
gzip on;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript text/javascript;
gzip_static on;
有办法防止这种情况吗?
我找到了解决方案。事实上,有两种可能的解决方案:
将 javascript 和 CSS 文件保存在单独的目录中,并创建“位置”规则以仅对该目录使用 gzip_static
如果这是不可能的(托管多个网站,并非所有内容都在您的控制之下,目录和文件太多),有一个更简单的解决方案可以通过使用来防止多次 open() 调用打开文件缓存错误 http://wiki.nginx.org/HttpCoreModule#open_file_cache_errors设置缓存(即记住).gz 文件不存在并且不会尝试再次打开它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)