CSDNMrWang 2010-05-25
通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况。Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过web界面,一种是通过命令,web查看要比命令查看显示的结果精确一些。下面介绍这两种查看方法
No1、通过浏览器查看
通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module 然后配置Nginx.conf,在server点里面加入如下内容stub_statuson;
access_log/usr/local/nginx/logs/status.log;
auth_basic"NginxStatus";}
配置完后重新启动Nginx后我们可以通过浏览器访问http://localhost/status查看,如下图
解析:
Activeconnections//当前Nginx正处理的活动连接数。
serveracceptshandledrequests//总共处理了8个连接,成功创建8次握手,总共处理了500个请求。
Reading//nginx读取到客户端的Header信息数。
Writing//nginx返回给客户端的Header信息数。
Waiting//开启keep-alive的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接
No2、通过命令查看
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'ESTABLISHED3254
LAST_ACK236
FIN_WAIT_1648
FIN_WAIT_2581
CLOSING7
CLOSE_WAIT 4916解析:
CLOSED//无连接是活动的或正在进行
LISTEN//服务器在等待进入呼叫
SYN_RECV//一个连接请求已经到达,等待确认
SYN_SENT//应用已经开始,打开一个连接
ESTABLISHED//正常数据传输状态/当前并发连接数
FIN_WAIT1//应用说它已经完成
FIN_WAIT2//另一边已同意释放
ITMED_WAIT//等待所有分组死掉
CLOSING//两边同时尝试关闭
TIME_WAIT//另一边已初始化一个释放
LAST_ACK //等待所有分组死掉============================================================
http://blog.s135.com/nginx_php_v5/
产品 网站数Apache84,309,103
IIS60,987,087
GoogleGFE10,465,178
Unknown4,903,174
nginx2,125,160
Oversee1,953,848
lighttpd 1,532,952
2、Nginx本身只是一个HTTP和反向代理服务器,它无法像Apache一样通过安装各种模块来支持不同的页面脚本,例如PHP、CGI等;
3、Nginx支持简单的负载均衡和容错;
4、支持作为基本HTTP服务器的功能,例如日志、压缩、Byteranges、Chunkedresponses、SSL、虚拟主机等等,应有尽有。
在 Linux 下安装 Nginx#tarzxvfpcre-7.7.tar.gz
#cdpcre-7.7
#./configure
#make
#makeinstall
#tarzxvfnginx-0.6.31.tar.gz
#cdnginx-0.6.31
#./configure--with-http_stub_status_module–prefix=/opt/nginx
#make
#makeinstall
TERM,INT快速关闭程序,中止当前正在处理的请求
QUIT处理完当前请求后,关闭程序
HUP重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求
USR1重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件
USR2平滑升级可执行程序
WINCH 从容关闭工作进程#error_loglogs/error.lognotice;
#error_log logs/error.log info;useepoll;#Linux下性能最好的event模式
worker_connections2048;#每个工作进程允许最大的同时连接数
}includemime.types;
default_type application/octet-stream;#'"$status"$body_bytes_sent"$http_referer"'
# '"$http_user_agent" "$http_x_forwarded_for"';#tcp_nopushon;
tcp_nodelay on;#集群中的所有后台服务器的配置信息
upstreamtomcats{
server192.168.0.11:8080weight=10;
server192.168.0.11:8081weight=10;
server192.168.0.12:8080weight=10;
server192.168.0.12:8081weight=10;
server192.168.0.13:8080weight=10;
server192.168.0.13:8081weight=10;
}listen80;#HTTP的端口
server_name localhost;stub_statuson;#Nginx状态监控配置
access_logoff;
}denyall;
}
zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)${
root/opt/webapp;
expires24h;
}proxy_pass[url]http://tomcats[/url];#反向代理
includeproxy.conf;
}#
error_page502503/html/502.html;
error_page500504/50x.html;
location=/50x.html{
roothtml;
}
}
}
serveracceptshandledrequests
145538191455381919239266
Reading:0Writing:3Waiting:67
serveracceptshandledrequests--总共处理了14553819个连接,成功创建14553819次握手(证明中间没有失败的),总共处理了19239266个请求(平均每次握手处理了1.3个数据请求)。
reading--nginx读取到客户端的Header信息数。
writing--nginx返回给客户端的Header信息数。
waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。root/opt/webapp/images;
}
root/opt/webapp;
expires24h;
}
expires60s;
expires30m;
expires24h;
expires1d;
expiresmax;
expiresoff;
proxy_pass[url]http://localhost:8080[/url];
proxy_set_headerX-Real-IP$remote_addr;
}
proxy_pass[url]http://tomcats[/url];
proxy_set_headerX-Real-IP$remote_addr;
}