很多时候我们都是使用apache或者nginx的自动压缩功能来提高网站的流量,其实动态的压缩网页具有灵活事实优点的同时,也加剧了服务器性能的恶化,所以一般我们只是设置为 gzib的3级别压缩,不好整最高的9的级别。

  为了达到web服务器的最高性能我们可以通过结合shell来进行手动压缩,网页也有不少类似的脚本,反正我拿过来没运行成功,自己就改了改:

 #! /bin/bash
find ./ -type f \
| grep -iE '\.(html|txt|css|js)$' \
| awk '{
gz_file=$1 ".gz";
gz_stat="stat -c \"%Y\" " gz_file;  
targe_stat="stat -c \"%Y\" " $1;
exist_cmd="[ -e \"" gz_file "\"  ] && echo 1 || echo 0";
exist_cmd | getline gz_file_exist;
if (gz_file_exist) {  
    gz_stat | getline last_modify_timestamp;  
} else {  
    last_modify_timestamp=0;
}  
targe_stat | getline targe_time;
if (last_modify_timestamp < targe_time) {  
    system("gzip -c9 " $1 " > " gz_file); 
    print gz_file " [created]";
}  
}'

  注意:这个脚本中我没有压缩图片,为什么呢。现在IE6当道,如果压缩了img很容易导致ie6假死,所以我们首先要在nginx.conf配置文件中禁止gzip_disable "MSIE [1-6]\."; ,但是这样对于没有问题的html.js.css等又不压缩了。所以我们要采取手动压缩html.js.css,text文件,只是图片我们不压缩了,再说一般的网站图片本身都是压缩格式的,我们不用压缩。压了也白压!完美的解决了ie6兼容性问题,还提高了性能。其实nginx是首先检查你请求的文件是由存在gz(伪造的后缀为.gz的没用,nginx会检查真实性,如果存在就直接转发.gz格式,如果不存在再压缩,所以压缩完以后可以删除原始文件,当然出于以后更新方便还是不删除吧!)

 如果不行最好是下载原始文件了http://down.51cto.com/data/497955,其中的分隔符容易出错,之后就到所在的web根目录下运行#>cgz 就可以了,马上所有的html txt css js都变成了*.gz了呵呵。就不用nginx.apache动态压缩了呵呵性能当然是又上一个台阶了呵呵