一 nginx统计模块stub_status安装与使用
1 编译安装 nginx的http_stub_status_module监控其运行状态
./configure--prefix=/usr/local/software/ngnix/install --with-http_stub_status_module
2 查看是否安装好
/usr/local/software/ngnix/install/sbin/nginx -V
3 修改 Nginx 配置文件
#开启stub_status统计模块
location/nginx-status {
stub_status on;
access_log off;
#加入访问限制
allow 192.168.1.101;
deny all;
}
4 访问结果
参数说明
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了38810620个连接,成功创建38810620次握手(证明中间没有失败的),总共处理了298655730个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接.
所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中.
二 ab测试工具进行测试
访问nginx首页,请求50000次,并发数5000
ab -n 50000 -c 5000 http://192.168.1.100/
访问结果
请求结果 80%在1秒内响应, 5%需要 3-7秒 , 3%需要7秒, 2%需要10秒,效果不是很好.
三 nginx优化
优化思路
1 http连接快速关闭 keep_alivetime:0(高并发情况下,连接不需要保持一段时间,不用了马上关闭) ,在nginx.conf新增keepalive_timeout 0;如图
2 子进程允许打开的连接( worker_connections 和 worker_limit_no_files )
在nginx.conf配置如下
3 最大连接数 somaxconn,
加快tcp连接的回收recycle
空的tcp是否允许回收利用 reuse
洪水攻击 不做洪水抵御
分别执行执行下面命令
4 设置系统可以打开的文件数
ulimit -n 10240
5做完这些优化后,重新用ab工具进行测试,结果如下
请求 98%在1.5秒以内响应, 2%在3.5 秒以内响应.
四 Nginx优化参考
http://blog.csdn.net/moxiaomomo/article/details/19442737