本文将分4个步骤讲解:
1.api压力测试 2.查看api响应性能 3.nginx限流进行优化 4.查看优化结果
1 api压力测试 1.1 安装压测工具
yum -y install httpd-tools
ab -v
1.2 开始api测试
ab -n1000 -c100 http://pear.tsaihoo.com/test.php
2 查看api响应性能
注:Requests per second: 24.47 [#/sec] (mean) 是指最大的qps (请求数/秒)
3 nignx限流进行优化
3.1 nginx限流可分为两种方式:
1)按连接数限速,即并发数(ngx_http_limit_conn_module) 2)按请求速率限速,按照ip限制单位时间内请求的数(ngx_http_limit_req_module)
3.2 nginx 限流配置:(这里用的按请求速率限速)
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
limit_req zone=mylimit burst=1 nodelay;
3.3 在宝塔中加入配置: 或 vim /home/server/nginx/conf/nginx.conf直接进行配置,需要留意的是limit_req_zone放http模块,limit_req放server模块。
3.4 重启nginx
service nginx restart
3.5.查看是否启动成功
ps aux | grep nginx
4.查看优化结果 4.1 重复1.2步骤,结果: 4.2 查看nginx报错信息: 最后,我们发现压测的结果要比一开始的qbs要大,原因:nginx进行了限流,一次只能只能2个请求成功,后面的请求nginx直接返回了503(参考4.2),所以访问速度变快了。
还有不清楚的地方欢迎留言
|