如何在nginx中监控php-fpm的状态
时间:2019-04-29 03:17:21 来源:igfitidea点击:
PHP- fpm (FastCGI进程管理器)是另一种PHP FastCGI实现,它附带了许多额外的特性,对于任何大小的网站都很有用,尤其是那些流量大的网站。
php-fpm有一个内置的状态页,它可以帮助您监视其健康状况。
如何在Linux中启用PHP-FPM状态页
配置文件
修改php-fpm配置文件并启用状态页
/etc/php-fpm.d/www.conf
或者
/etc/php/7.2/fpm/pool.d/www.conf
启用status_path
找到 # pm.status_path = /status
改成 pm.status_path = /status
重启php-fpm
$ sudo php-fpm -t $ sudo systemctl restart php-fpm 或者 $ sudo php7.2-fpm -t $ sudo systemctl restart php7.2-fpm
配置url地址
修改配置文件
配置文件: /etc/nginx/conf.d/default.conf
在server块中,添加一个location块,用于访问php-fpm状态页面
location ~ ^/(status|ping)$ { allow 127.0.0.1; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php7.2-fpm.sock; }
出于安全考虑,我们使用了指令allow 127.0.0.1, 只允许在本地主机中访问PHP-FPM进程状态。
重启nginx
$ sudo systemctl restart nginx
测试
使用浏览器打开 http://127.0.0.1/status
或者 http://服务器ip/status
php-fpm将返回的每个进程的详细状态:
pid | pid的过程。 |
state | 进程状态(空闲、运行等)。 |
start time | 进程启动的日期和时间。 |
start since | 进程启动后的秒数。 |
requests — | 进程服务的请求数。 |
request duration | 请求持续时间。 |
request method | 请求方法(GET、POST等)。 |
request URI | 带有查询字符串的请求URI。 |
content length | 请求的内容长度(仅用于POST)。 |
user | 认证用户 (PHP_AUTH_USER)(如果没有设置,则为'-')。 |
script | 调用的主脚本(如果没有设置,则为'-')。 |
last request cpu | 最后的请求消耗的cpu百分比 |
last request memory | 最后一次请求消耗的最大内存量 |
默认是简略信息, 要查看详细信息:
http://127.0.0.1/status?full
同时还可以指定输出格式,便于其他程序进行处理:
http://127.0.0.1/status?json&full
http://127.0.0.1/status?html&full
http://127.0.0.1/status?xml&full