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
目录
相关文章
|
15天前
|
Ubuntu 应用服务中间件 Linux
Linux Centos7 ubuntu 安装nginx,脚本一键安装nginx
Linux Centos7 ubuntu 安装nginx,脚本一键安装nginx
|
15天前
|
Ubuntu 中间件 Linux
linux php添加扩展zip libzip ZipArchive功能
linux php添加扩展zip libzip ZipArchive功能
|
2天前
|
应用服务中间件 Linux 网络安全
PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
在Azure App Service for Linux上部署的PHP应用遇到上传文件超过1MB时出现413 Request Entity Too Large错误的解决之法
|
10天前
|
应用服务中间件 Linux nginx
蓝易云 - Linux使用pid文件结束nginx
以上就是使用pid文件结束nginx进程的方法。
8 0
|
16天前
|
Linux 应用服务中间件 开发工具
centos linux 通过yum安装nginx
centos linux 通过yum安装nginx
|
20天前
|
Ubuntu 应用服务中间件 Linux
蓝易云 - Linux学习之Ubuntu20中OpenResty的nginx目录里内容和配置文件
你可以根据你的需要修改这个配置文件,例如增加新的服务器块,位置块,修改监听的端口等。修改完配置文件后,你需要重载Nginx配置,可以使用 `/usr/local/openresty/nginx/sbin/nginx -s reload`命令来实现。
24 0
|
22天前
|
应用服务中间件 Linux nginx
蓝易云 - linux查看正在运行的nginx在哪个文件夹当中
请注意,这些步骤可能需要root权限才能执行。如果你没有root权限,你可能需要使用 `sudo`命令。
26 0
|
1月前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
71 3
|
1月前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
1月前
|
Ubuntu 应用服务中间件 Linux
Linux下制作Nginx绿色免安装包
linux下安装nginx比较繁琐,遇到内网部署环境更是麻烦,所以研究了下nginx绿色免安装版的部署包制作,开箱即用,特此记录分享,一下操作在centos8环境下安装,如果需要其他内核系统的安装(Debian/Ubuntu等),请在对应环境虚拟机下安装制作
36 0