优化单机性能(商品秒杀场景)

提高页面访问速度

减少页面大小,启用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。

posted @ 2019-03-05 09:47  让我们荡起双桨!  阅读(153)  评论(0)    收藏  举报