linux 查看nginx状态和php-fpm状态 nginx-status和php-status

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: linux 查看nginx状态和php-fpm状态 nginx-status和php-status

启用nginx status配置

在默认主机里面加上location或者你希望能访问到的主机里面。

server {
    location /nginx-status {
        stub_status on;
        #access_log /home/www/phpernote/nginx_status.log;//访问日志,这里可以设置为off将其关闭
        access_log off;
        #allow 127.0.0.1;#允许访问的IP
        #deny all;
    }
}

重启nginx

请依照你的环境重启你的nginx

service nginx restart
  • 打开status页面,这里是通过命令行获取的,将得到如下结果:
curl http://127.0.0.1/nginx-status
Active connections: 11921 
server accepts handled requests
 11989 11989 11991 
Reading: 56 Writing: 127 Waiting: 242
  • nginx status详解

active connections – 活跃的连接数量

server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求

reading — 读取客户端的连接数

writing — 响应数据到客户端的数量

waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中。

以上是nginx的status信息

php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。

启用php-fpm状态功能

编辑php-fpm.conf 配置文件 找到pm.status_path配置项

pm.status_path = /php-status
  •  

nginx配置

在默认主机里面加上location或者你希望能访问到的主机里面。

server {
    #nginx的状态页面
    location /nginx-status {
        stub_status on;
        access_log off;
        #allow 127.0.0.1;#允许访问的IP
        #deny all;
    }
   #php的状态页面
    location /php-status {
        fastcgi_pass  127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        #allow x.x.x.x;
        access_log off;
        #deny all;
    }
}

重启nginx和php-fpm

打开status页面

pool:                      www

process manager:      dynamic

start time:           13/Nov/2018:15:29:58 +0800

start since:          1237

accepted conn:        54

listen queue:         0

max listen queue:     0

listen queue len:     128

idle processes:       14

active processes:     1

total processes:      15

max active processes: 1

max children reached: 0

slow requests:        0

php-fpm status详解

pool – fpm池子名称,大多数为www

process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic

start time – 启动日期,如果reload了php-fpm,时间会更新

start since – 运行时长

accepted conn – 当前池子接受的请求数

listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量

max listen queue – 请求等待队列最高的数量

listen queue len – socket等待队列长度

idle processes – 空闲进程数量

active processes – 活跃进程数量

total processes – 总进程数量

max active processes – 最大的活跃进程数量(FPM启动开始算)

max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。

6、 php-fpm状态页可以通过带参数实现个性化,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合。

json格式:http://127.0.0.1/php-status?json

xml格式: http://127.0.0.1 /php-status?xml

html 格式: http://127.0.0.1 /php-status?html

full格式: http://127.0.0.1 /php-status?full

full详解

pid – 进程PID,可以单独kill这个进程. You can use this PID to kill a long running process.

state – 当前进程的状态 (Idle, Running, …)

start time – 进程启动的日期

start since – 当前进程运行时长

requests – 当前进程处理了多少个请求

request duration – 请求时长(微妙)

request method – 请求方法 (GET, POST, …)

request URI – 请求URI

content length – 请求内容长度 (仅用于 POST)

user – 用户 (PHP_AUTH_USER) (or ‘-’ 如果没设置)

script – PHP脚本 (or ‘-’ if not set)

last request cpu – 最后一个请求CPU使用率。

last request memorythe - 上一个请求使用的内存

查看php-fpm的slowlog 慢执行

通过slow requests: 52 发现有慢执行

php-fpm.conf 配置文件

找到request_slowlog_timeout = 0这一行,默认值为0,表示不开启slowlog,将其值改为3s,表示跟踪执行时间达到或超过3s的脚本。

找到slowlog,它的值表示慢执行日志的路径。

修改完后需要重启php,

查看日志文件,slowlog的文件的内容大概是这样的:

[31-Dec-2012 09:50:00] [pool www] pid 2874

script_filename = /htdocs/blog/index.php

[0x0000000001cf4ff0] mysql_query() /htdocs/blog/class/mysql.php:9

[0x0000000001cf4ec0] query() /htdocs/blog/class/mysql.php:26

[0x0000000001cf4a70] one() /htdocs/blog/class/ware.php:88

[0x0000000001cf46c8] query() /htdocs/blog/function/common.php:132

[0x0000000001cf3a40] +++ dump failed

这样就可以很明显看到什么mysql.php的mysql_query()方法执行的语句超时了。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
开发框架 应用服务中间件 PHP
Mac Nginx 关联 php 详细配置以及常见错误
Mac Nginx 关联 php 详细配置以及常见错误
148 1
|
9月前
|
运维 监控 应用服务中间件
【运维知识进阶篇】zabbix5.0稳定版详解3(监控Nginx+PHP服务状态信息)(二)
【运维知识进阶篇】zabbix5.0稳定版详解3(监控Nginx+PHP服务状态信息)(二)
157 0
|
9月前
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
232 0
|
网络协议 应用服务中间件 PHP
PHP和nginx是什么关系?是如何交互的?底层原理是什么?
PHP和nginx是什么关系?是如何交互的?底层原理是什么?
497 0
|
网络协议 NoSQL 关系型数据库
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
2105 0
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
|
4天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
53 3
|
4天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
35 0
|
9月前
|
运维 负载均衡 关系型数据库
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
116 0
|
9月前
|
运维 关系型数据库 MySQL
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
206 0
|
9月前
|
消息中间件 NoSQL 关系型数据库
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
111 0