源于蚂蚁课堂的学习,点击这里查看
1.对静态资源进行压缩
所谓静态压缩,就是对js和css做压缩,常见的做法是去掉空白和注释,使其尽可能轻量级。
而nginx做的更绝,它通过字典的方式,约定了一些js和css的关键字,如(假设:将function变为一个字母a)。
通过这种方式压缩静态资源,然后减少带宽的传输,然后通过约定渲染的时候按照字典对应的规则还原js,从而提升响应速度
配置方法
在nginx对应的server中配置如下信息:
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;
参数说明:
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压缩标志
2.页面缓存
对于商品详情复杂的系统,可以通过nginx将页面进行缓存至本地文件,即根据访问url将对应的页面保存至本地,
这样页面的响应就不会那么卡慢
# 代理缓存配置
proxy_cache_path "./yxh_cachedata" levels=1:2 keys_zone=yxhcache:256m inactive=1d max_size=1000g;
server {
listen 80;
server_name localhost;
# 静态资源文件压缩
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 /detail {
#使用缓存名称
proxy_cache yxhcache;
#对以下状态码实现缓存
proxy_cache_valid 200 206 304 301 302 1d;
#缓存的key
proxy_cache_key $request_uri;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
#
location /list{
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}