要通过 nginx + php-fpm 实时监控工作进程状态,需启用 php-fpm 的 status 页面并配置 nginx 反向代理;编辑池配置开启 pm.status_path 和 ping.path,重启 php-fpm,nginx 中用 fastcgi_pass 直连 php-fpm 监听地址,并设 script_filename 为 $fastcgi_script_name,限制 ip 白名单或启用 basic auth 保障安全。

要通过 Nginx + PHP-FPM 的状态监控页面实时查看工作进程状态,核心是启用并正确配置 PHP-FPM 的 status 页面,再通过 Nginx 反向代理访问。它不是 Nginx 自带的功能,而是 PHP-FPM 提供的内置状态接口。
启用 PHP-FPM 的 status 状态页
PHP-FPM 默认禁用 status 页面,需手动开启:
- 编辑 PHP-FPM 池配置文件(如
/etc/php/{version}/fpm/pool.d/www.conf) - 确保以下两行已取消注释且值正确:
pm.status_path = /status<br>ping.path = /ping
-
pm.status_path是状态页路径,ping.path用于健康检查(可选但建议保留) - 重启 PHP-FPM:
sudo systemctl restart php{version}-fpm
配置 Nginx 反向代理到 PHP-FPM status 接口
因为 PHP-FPM 的 status 页面不走常规 FastCGI 请求流程,必须由 Nginx 直接转发到 PHP-FPM 的监听地址(通常是 socket 或 127.0.0.1:9000):
- 在站点配置或单独 location 块中添加:
location ~ ^/(status|ping)$ {<br> include fastcgi_params;<br> fastcgi_pass unix:/run/php/php{version}-fpm.sock;<br> fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;<br> fastcgi_intercept_errors off;<br>} - 注意:
fastcgi_param SCRIPT_FILENAME必须设为$fastcgi_script_name,否则 status 请求会失败 - 不要加
try_files或其他 rewrite 规则干扰该路径
访问与查看状态信息
配置生效后,可通过浏览器或 curl 访问:
-
http://your-domain.com/status—— 返回文本格式状态(默认) -
http://your-domain.com/status?json—— 返回 JSON 格式(更易解析) -
http://your-domain.com/status?html—— 返回 HTML 表格(部分版本支持) -
http://your-domain.com/ping—— 返回pong表示 PHP-FPM 正常运行
关键字段说明:active processes(当前活跃子进程数)、accepted conn(总接受连接数)、start time(池启动时间)、各进程的 state(Idle/Running/Starting 等)。
安全限制:只允许本地或指定 IP 访问
status 页面暴露敏感运行信息,务必限制访问权限:
- 在 location 块中加入 IP 白名单:
location ~ ^/(status|ping)$ {<br> allow 127.0.0.1;<br> allow 192.168.1.100;<br> deny all;<br> # ... 其余 fastcgi 配置<br>} - 或配合 HTTP Basic Auth 做二次保护(适合运维后台)
- 切勿对公网开放未授权的 status 接口
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











