nginx 静态资源gzip压缩与缓存,解决静态资源加载慢的问题 电脑版发表于:2020/4/4 11:32 #####在http模块中开启gzip压缩 ``` # 开启gzip gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间。一般设置1和2 gzip_comp_level 2; # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。 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; # 是否在http header中添加Vary: Accept-Encoding,建议开启 gzip_vary on; # 禁用IE 6 gzip gzip_disable "MSIE [1-6]\."; # 设置缓存路径并且使用一块最大100M的共享内存,用于硬盘上的文件索引,包括文件名和请求次数,每个文件在1天内若不活跃(无请求)则从硬盘上淘汰,硬盘缓存最大10G,满了则根据LRU算法自动清除缓存。 proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g; ``` 其实一般我们配不到那么多,核心的就这样既可 ``` #gzip on压缩配置; gzip on; gzip_comp_level 3; gzip_min_length 1024; gzip_types application/javascript application/x-javascript text/css application/xml text/javascript; ``` 配置之后我们就可以看到请求静态资源是进行压缩的了 ![](https://img.tnblog.net/arcimg/aojiancc2/d525336ca52943a295b6942c05c41364.png) 本来是80kb的压缩之后只有18kb了可以所压缩比还是很高了,当然压缩比不是越高越好,一般设置为1其实都够用了后面的压缩比会越来越小,而且设置越大越浪费服务器资源 #####开启缓存 ``` location ~* ^.+\.(css|js)$ { proxy_pass https://localhost:8882; access_log off;#不记录日志 add_header xj 'nginx cache';#可以设置一个header看是否作用到缓存 expires 2d; } ``` proxy_pass 如果找不到这些资源就转发到这个链接去然后下载进行缓存,下次就从缓存中取了. But....我尝试的时候并不行..直接找不到资源,但是有些有可以。emmmmm最烦这种了,应该是因为缓存了一个后内容不够了...,或者说必须要设置缓存地址 >我知道了太坑了,是因为iis配置那个主机名的问题,把主机名删除即可,不然这个也是一个限制的点 ![](https://img.tnblog.net/arcimg/aojiancc2/afd4d212a5964d04858f612a7b416993.png) 还可以参考:https://www.tnblog.net/aojiancc2/article/details/2478