php-fpm.conf配置文件中文及重要参数说明

php-fpm.conf配置文件中文及重要参数说明

php-fpm工作流程

php-fpm全名是PHP FastCGI进程管理器

php-fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。

启动php-fpm之后,会创建一个master进程,监听9000端口(可配置),master进程又会根据fpm.conf/www.conf去创建若干子进程,子进程用于处理实际的业务。

当有客户端(比如nginx)来连接9000端口时,空闲子进程会自己去accept,如果子进程全部处于忙碌状态,新进的待accept的连接会被master放进队列里,等待fpm子进程空闲;

这个存放待accept的半连接的队列有多长,由 listen.backlog 配置。

配置里面的所有相对路径,都是相对于php的安装路径。

除了有php-fpm.conf配置文件外,通常还有其他的*.conf配置文件(也可以不要,直接在php-fpm.conf配置)用于配置进程池,不同的进程池可以用不同的用户执行,监听不同的端口,处理不同的任务;多个进程池共用一个全局配置。

include=/opt/remi/php56/root/etc/php-fpm.d/*.conf 载入其他的配置文件。

php-fpm全局配置参数中文说明:

php-fpm进程池配置 pool Definitions:

在不同的监听端口和不同的管理选项下可以跑任意数量的池,并没有个数限制;

池的名字用于 logs 和 stats。

注意:PHP配置值通过 php_value 或者 php_flag 设置,并且会覆盖以前的值。
disable_functions 或者 disable_classes 在 php.ini 之中定义的值不会被覆盖掉,但是会将新的设置附加在原有值的后面。
使用 php_admin_value 或者 php_admin_flag 定义的值,不能被 PHP 代码中的 ini_set() 覆盖。

自 5.3.3 起,也可以通过 web 服务器设置 PHP 的设定。

nginx 通过 unixsock 与 php-fpm 通信:

适用场景:nginx和php-fpm在同一台服务器上,这时可以直接用unixsocket进程间通信,不走tcp端口通信,可以节约创建连接的时间,从而提高性能。

1、设置php-fpm的listen为/opt/remi/php56/root/var/run/php-fpm/php567-fpm.sock(可以用相对路径),然后重启fpm就会自动创建该php567-fpm.sock文件

2、nginx的fastcgi_pass参数修改为 unix:/opt/remi/php56/root/var/run/php-fpm/php567-fpm.sock; 通过php567-fpm.sock文件去和fpm通信,需要保证该 php567-fpm.sock 文件 nginx 有权限访问。

总结:

sock文件随便创建到哪里都可以,只要fpm有权限在那个目录里写文件,nginx有权限去读就可以。tcp连接会更稳定,因为有tcp协议保证数据的正确性,但是sock有更少的数据拷贝和上下文切换,更少的资源占用。不过只能在nginx和fpm在同一台机器上才能用sock。

php-fpm进程状态监控

1、nginx配置:遇到 status 的请求,直接转发给php

2、fpm配置:pm.status_path = /status

3、然后重新fpm和nginx,在浏览器里访问就能看到了:

php-fpm.conf配置文件中文及重要参数说明

默认以 text/plain 展示结果,可以传参数 ?json/html/xml 分别得到json等格式的结果;参数full可以查看每个子进程的明细

pool 进程池名称

process manager 进程管理方式

start time 进程什么时候启动的

start since 进程已经运行了多少秒

accepted conn 该池总共accept了多少连接

listen queue 等待accept的连接的数量

max listen queue fpm启动后,历史最高等待accept的连接的数量

listen queue len 配置的监听队列最大长度 受限于`listen.backlog`和系统`cat /proc/sys/net/core/somaxconn`,两者中取最小值

idle processes 闲置的进程数

active process 正在工作的进程数(加上限制的,就是总的子进程数)

total processes 总的子进程数量

max active processes fpm启动后,历史最多同时工作的进程数

max children reached 进程管理模式为 'dynamic'和 'ondemand'时,此数值是当子进程不够用时,master创建更多子进程的次数

slow requests 慢请求个数

full参数下

pid 子进程ID;

state 子进程状态(Idle, Running, ...);

start time 子进程启动的时间;

start since 子进程启动后运行了多少秒;

requests 当前子进程一共处理了多少个请求;

request duration 请求耗费的纳秒数;

request method 请求方法 (GET, POST, ...);

request URI 请求参数;

content length POST请求时,请求的内容长度;

user - the user (PHP_AUTH_USER) (or '-' if not set);

script 请求的哪个php文件;

last request cpu 上次请求耗费的cpu资源

last request memory 上次请求耗费的内存峰值

如果进程是闲置状态,那这些信息记录的就是上次请求的相关数据,否则就是当前本次请求的相关数据。

backlog配置问题

一个fpm子进程在同一时间只能处理一个请求,如果,backlog设置得过大,nginx之类的客户端发起的请求一直没有fpm子进程进行accept,nginx就会直接断掉这个连接,等fpm忙过来了再去accept的时候,就会发现断开了,于是报错。backlog设置得过小,访问量大时fpm子进程全部处于忙碌状态,backlog也塞满了,就会拒绝新的连接,此时nginx再请求,就会直接被拒。所以需要合理的设置backlog参数。

大部分参数只要系统默认的就可以了,我们只需要知道几个比较重要的参数设置,什么时候用到可以回头查询相关说明

关于php-fpm.conf配置文件中文及重要参数说明的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/40818.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月16日 23:27
下一篇 2022年6月16日 23:27

相关推荐

  • 小编分享WinForm怎么保存和读取应用程序的配置信息。

    在WinForm中,我们可以使用.NET Framework提供的System.Configuration命名空间中的ConfigurationManager类来保存和读取应用程序的配置信息,以下是详细的步骤: (图片来源网络,侵删) 1. 创建应用程序配置文件 在…

    2024年6月27日
    00
  • 直击PHP进程管理器php-fpm

    php-fpm是什么php-fpm是PHP的一个进程管理器。php下面的众多work进程皆有php-fpm进程管理器管理。php-fpm的工作原理php-fpm全名是PHP FastCGI进程管理器。php-fpm启动后会先读php.ini,然后再读相应的conf配置文件…

    2022年6月13日 PHP自学教程
    0127
  • 说说centos怎么修改yum源。

    在CentOS系统中,我们经常需要使用yum命令来安装、更新软件包,默认的yum源可能因为网络原因或者版本更新不及时等问题,导致我们在使用中遇到不便,修改yum源是每个系统管理员必须掌握的技能之一。 (图片来源网络…

    2024年6月27日
    00
  • Flask怎样获取和使用配置信息?

    Flask是一个用Python编写的微框架,它可以帮助开发者在短时间内完成一个功能丰富的Web应用程序。在Flask中,若需要在程序中使用配置信息,以便对程序的一些行为进行定制,则可以采用多种方式将配置信息保存到Flask…

    2023年5月25日
    00
  • 我来分享linux如何保存配置的文件。

    在Linux操作系统中,配置文件扮演着至关重要的角色,它们包含了系统或应用程序运行所需的各种参数和设置,正确地管理和保存这些文件对于维护系统的稳定性和安全性至关重要,以下是如何在Linux中保存配置的文件的详…

    2024年6月27日
    00
  • 经验分享linux怎么添加静态永久路由。

    在Linux中添加静态永久路由,可以通过以下步骤实现: (图片来源网络,侵删) 1、打开终端 2、使用文本编辑器打开路由配置文件 3、添加静态永久路由规则 4、保存并关闭配置文件 5、重启网络服务使配置生效 具体操作…

    2024年6月27日
    00
  • 浅谈CGI、FastCGI、PHP-CGI、PHP-FPM!

    CGI与FastCGI的理解CGI与FastCGI都是一种通讯协议,是web Sever(Apache/nginx/iis)与其他程序(此程序通常叫做CGI程序,如PHP脚本解析器)之间通讯的桥梁FastCGI是CGI的改良进化版,FastCGI相比CGI更安全、性能更…

    2022年6月12日
    0138
  • 分享描述CentOS中网络接口配置文件的位置。

    在CentOS中,网络接口的配置文件通常位于 /etc/sysconfig/networkscripts/ 目录下,这个目录包含了一系列的网络配置文件,每个文件都对应一个特定的网络接口。 (图片来源网络,侵删) 1. 网络接口配置文件的位置 /…

    2024年6月26日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息