Nginx之如何开启status状态页
# nginx和php-fpm一样都内建了一个状态页,通过查看状态页信息可以连接到nginx服务负载情况,还可以利用状态页信息配zabbix监控.
# Nginx启用status状态页需要安装http_stub_status模块,使用yum源安装默认已经编译安装 http_stub_status模块,手动编译的需要在安装之时加入此模块。
1:安装Nginx:这里我选择yum直接安装
[root@virtual_host ~]# yum install -y nginx
2:修改或新建配置文件:这里我选择新建一个配置文件(前提是删除nginx.conf内的配置server字段)
cat << eof>>/etc/nginx/conf.d/status.conf
server {
listen 80;
root /usr/share/nginx/html;
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
access_log off;
}
}
eof
3:启动nginx
[root@virtual_host ~]# nginx
4:获取状态信息
[root@virtual_host ~]# curl 127.0.0.1/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
参数详解:
Active connections:当前所有处于打开状态的活动连接数
accepts :已经接收连接数
handled : 已经处理过的连接数
requests : 已经处理过的请求数,在保持连接模式下,请求数量可能会大于连接数量
Reading: 正处于接收请求的连接数
Writing: 请求已经接收完成,处于响应过程的连接数
Waiting : 保持连接模式,处于活动状态的连接数
5:附带Zabbix监控nginx脚本
#!/bin/bash
NGINX_PORT=80
nginx_active(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
}
nginx_reading(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
}
nginx_writing(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
}
nginx_waiting(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
}
nginx_accepts(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
}
nginx_handled(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
}
nginx_requests(){
/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
}
case $1 in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
*)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac