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

我已经nginx的与gzip_static启动安装。 它工作正常的CSS和JavaScript文件,但它也寻找像巴纽和.gif图片文件gzip压缩的版本,但这些都不是在文件列表中被压缩:

# 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;

是否有办法防止这种情况?

--------------解决方案-------------

我找到了解决办法。 事实上,两个可能的解决方案:

  1. 保持JavaScript和CSS文件在一个单独的目录,并创建“位置”规则,使用gzip_static只对目录
  2. 通过使用open_file_cache_errors设置其高速缓存(即记忆),其.gz的文件不是,如果这是不可能的(托管多个网站,你的控制之下不是万能的,太多的目录和文件),有一个简单的解决方案,以防止多个open()调用目前并不会尝试再次打开它。

我找到了一种方法来编辑nginx的,但在一个非常难过的源代码:

  1. 找不到文件:

ngx_http_gzip_static_module.c(版本1.0.1,其他版本可以是相同的):

2。在:

ngx_http_gzip_static_handler(ngx_http_request_t * r)的

3;实测值:

如果(R-> uri.data [R-> uri.len - 1] =='/'){返回NGX_DECLINED; }

  1. 地址:

如果(R-> uri.data [R-> uri.len - 1] =='G'&& R-> uri.data [R-> uri.len - 2] =='N'&& R-> URI .DATA [R-> uri.len - 3] =='P'&& R-> uri.data [R-> uri.len - 4] ==){返回NGX_DECLINED'。“; }如果(R-> uri.data [R-> uri.len - 1] =='G'&& R-> uri.data [R-> uri.len - 2] =='P'&& R-> uri.data [R-> uri.len - 3] =='J'&& R-> uri.data [R-> uri.len - 4] ==){返回NGX_DECLINED'。“; }如果(R-> uri.data [R-> uri.len - 1] =='O'&& R-> uri.data [R-> uri.len - 2] =='C'&& R-> uri.data [R-> uri.len - 3] =='我'&& R-> uri.data [R-> uri.len - 4] ==){返回NGX_DECLINED'。“; }

  1. 重新编译源代码。

任何人都知道C可编辑更professtinal,因为我不知道的C :(

分类:nginx的 时间:2015-03-15 人气:0
本文关键词: nginx的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.134 (s). 10 q(s)