nginx开启gzip和静态文件缓存提高

网页压缩

       网页压缩是一项由 WEB 服务器和浏览器之间共同遵守的协议,也就是说 WEB 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。双方的协商过程如下:  
  首先浏览器请求某个 URL 地址,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议,下面我们会介绍二者之间的区别);

       WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。

       在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。

首先看nginx.conf配置:

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 8;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";

    proxy_connect_timeout 10;
    proxy_read_timeout 180;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 96k;
    proxy_temp_file_write_size 96k;
    proxy_temp_path /tmp/temp_dir;
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;

XXX.conf

扫描二维码关注公众号,回复: 4761185 查看本文章

server {
        server_name www.你的域名.com;
        location / {
                proxy_pass http://localhost:4000;
                proxy_redirect off;
                proxy_cache cache_one;
                #此处的cache_one必须于上一步配置的缓存区域名称相同
                proxy_cache_valid 200 304 12h;
                proxy_cache_valid 301 302 1d;
                proxy_cache_valid any 1m;
                #不同的请求设置不同的缓存时效
                proxy_cache_key $uri$is_args$args;
                #生产缓存文件的key,通过4个string变量结合生成
                expires 30d;
                #其余类型的缓存时效为30天
                proxy_set_header X-Forwarded-Proto $scheme;
                add_header wall  "hey!guys!give me a star.";
        }
}

注意:

     proxy_cache cache_one;                                        中cache_one为nginx.conf中配置的keys_zone

    add_header wall  "hey!guys!give me a star.";           调试网页的时候可通过这个标识查看缓存是否命中

效果图:

结束!

猜你喜欢

转载自blog.csdn.net/kuangni5808/article/details/85683880