优化单机性能(商品秒杀场景)
提高页面访问速度
减少页面大小,启用gzip压缩
# Nginx配置gzip段如下: gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 6; gzip_types text/plain application/javascript text/css application/xml;
gzip on | off
# 默认值:gzip off
# 开启或关闭gzip模块
gzip_comp_level 6
# 默认值:1(建议为4)
# gzip压缩比/压缩等级,压缩级别 1-9,级别越高压缩率越大,压缩时间越长(传输快但比较耗CPU)
gzip_buffers 4 16k
# 默认值:gzip_buffers 4 4k/8k
# 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。
# 如果没有设置,默认是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。
gzip_types mine-type [mine-type ...]
# 默认值:gzip_types text/html (默认不对js/css文件进行压缩)
# 压缩类型,匹配MIME类型进行压缩
# 不能用通配符 text/*
# (无论是否指定)text/html默认已经压缩
# 设置哪压缩种文本文件可参考 conf/mime.types
gzip_min_length 1k
# 默认值:0,不管页面多大都压缩
# 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取
# 建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024
gzip_disable "MSIE [1-6]\."
# 配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(ie版本低不支持)
减少资源请求数量,合并和压缩css、js等
使用 Minify 把css和js压缩和削减(Minify:去掉空格回车符),以及把多个css、js文件整合到一个文件里。通过对文件的整合,可以减少浏览器端不断发送新的连接请求。
设置浏览器缓存,利用CDN加速
# Nginx配置文件缓存
location ~.*\.(js|css|jpg|jpeg|gif|png)${ #指定缓存文件类型
expires 7d; #设置浏览器过期时间
}
提高接口速度
- 将接口静态化
- 快速终止的逻辑放在前面
- 增加冗余的定制化数据,保证程序更快速
例如验证活动和商品状态接口:
接口对应着 /astatus/{aid}_{gid}.js 静态文件的动态实现,例如:/astatus/1_1.js
不能秒杀的时候,静态文件才会存在,活动开始前,静态文件存在,当在互动进行中,会统一把静态文件删除,则Nginx的rewrite失效,进入到这个状态文件
# Nginx的站点配置信息(文件不存在时走rewrite到动态文件)
if( !-e $request_filename ) {
rewrite ^([^\.]*)/astatus/([0-9]+)_([0-9]+).js$ $1/astatus.php?aid=$2&gid=$3 last;
}
当 /astatus/1_1.js文件存在,则Nginx直接返回静态文件内容,如果不存在,则把参数赋值给动态接口 /astatus.php?aid=1&gid=1。
浙公网安备 33010602011771号