压缩静态资源减少带宽传输的方式

上一篇 <<<高并发情况下,接口的代码会存在哪些问题
下一篇 >>>动静分离架构模式


1.人工在线压缩

css/js/img实现压缩地址:http://tool.oschina.net/jscompress/

2.Maven自动打包压缩,生成min文件


    
        
        
            
                
                net.alchim31.maven
                yuicompressor-maven-plugin
                1.3.0
                
                    
                    UTF-8
                    
                    false
                    
                    false
                    
                    -1
                    
                    true
                    
                    .min
                    
                    ${basedir}/mobile
                    
                    
                        **/*.js
                        **/*.css
                    
                    
                    
                        **/*.min.js
                        **/*.min.css
                        scripts/data/*.js
                    

                
            
        
    

使用:mvn yuicompressor:compress
压缩完后,会生成min文件,去除了注释空格换行等


3.Nginx自带的压缩

server {
        listen       8888;
        server_name  www.jarye.cn
        gzip on;
        gzip_buffers 32 4K;
        gzip_comp_level 6;
        gzip_min_length 100;
        gzip_types application/javascript text/css text/xml;
        gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
        gzip_vary on;
        location / {
            proxy_pass   http://localhost:9091/;
            index  index.html index.htm;
        }
}

gzip配置的常用参数
gzip on|off;  #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied          # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off  # 是否传输gzip压缩标志

4.各种压缩方式的区别

传统的压缩方案:实际上对注释、空格去除、换成一行;
nginx压缩方案:将重复性比较高的function等关键字设置长度较小的字典(a、b之类的),缺点是压缩非常的耗CPU资源。
如果图片压缩不清晰,可以使用分段组装,一张大图切割为多长小图,相当于多线程请求服务端,速度会快很多。


推荐阅读:
<<<高并发架构的整体思路
<<<一个网站访问慢的真正原因
<<<高并发情况下,接口的代码会存在哪些问题
<<<动静分离架构模式
<<<缓存策略汇总
<<<后端服务的雪崩效应及解决思路
<<<服务的隔离、降级和熔断
<<<服务限流之计数器方式
<<<服务限流之滑动窗口计数
<<<服务限流之令牌桶算法
<<<服务限流之漏桶算法
<<<漏桶算法和令牌桶算法的区别
<<<自定义封装限流算法
<<<应用级限流
<<<接入层限流

你可能感兴趣的:(压缩静态资源减少带宽传输的方式)