<h3>第一部分:FPM 配置</h3><p>参数          | 说明</p><hr/><p>&nbsp;-p            | 命令行中动态修改–prefix  </p><p>;include=etc/fpm.d/*.conf  | 用于包含一个或多个文件,如果glob(3)存在(glob()函数返回匹配指定模式的文件名或目录)</p><h3>第二部分:全局配置</h3><p>由标志<span style="color: #ff0000;"><strong>[global]</strong></span>开始:</p><p><span class="cnblogs_code_copy"><a title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"/></a></span></p><pre>;pid&nbsp;=&nbsp;run/php-fpm.pid     &nbsp;设置pid文件的位置,默认目录路径&nbsp;/usr/local/php/var ;error_log&nbsp;=&nbsp;log/php-fpm.log  记录错误日志的文件,默认目录路径&nbsp;/usr/local/php/var ;syslog.facility&nbsp;=&nbsp;daemon    用于指定什么类型的程序日志消息。 ;syslog.ident&nbsp;=&nbsp;php-fpm    &nbsp;&nbsp;用于FPM多实例甄别 ;log_level&nbsp;=&nbsp;notice       &nbsp;记录日志的等级,默认notice,可取值alert,&nbsp;error,&nbsp;warning,&nbsp;notice,&nbsp;debug ;emergency_restart_threshold&nbsp;=&nbsp;0&nbsp;如果子进程在这个时间段内带有IGSEGV或SIGBUS退出,则重启fpm,默认0表示关闭这个功能 ;emergency_restart_interval&nbsp;=&nbsp;0 设置时间间隔来决定服务的初始化时间(默认单位:s秒),可选s秒,m分,h时,d天 ;process_control_timeout&nbsp;=&nbsp;0  &nbsp;&nbsp;子进程等待master进程对信号的回应(默认单位:s秒),可选s秒,m分,h时,d天 ;&nbsp;process.max&nbsp;=&nbsp;128        &nbsp;控制最大进程数,使用时需谨慎 ;&nbsp;process.priority&nbsp;=&nbsp;-19     &nbsp;处理nice(2)的进程优先级别-19(最高)到20(最低) ;rlimit_files&nbsp;=&nbsp;1024        设置主进程文件描述符rlimit的数量 ;rlimit_core&nbsp;=&nbsp;0          &nbsp;设置主进程rlimit最大核数 ;events.mechanism&nbsp;=&nbsp;epoll     使用处理event事件的机制   ;&nbsp;-&nbsp;select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(any&nbsp;POSIX&nbsp;os)   ;&nbsp;-&nbsp;poll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(any&nbsp;POSIX&nbsp;os)   ;&nbsp;-&nbsp;epoll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(linux&nbsp;&gt;=&nbsp;2.5.44)   ;&nbsp;-&nbsp;kqueue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(FreeBSD&nbsp;&gt;=&nbsp;4.1,&nbsp;OpenBSD&nbsp;&gt;=&nbsp;2.9,&nbsp;NetBSD&nbsp;&gt;=&nbsp;2.0)   ;&nbsp;-&nbsp;/dev/poll&nbsp;&nbsp;(Solaris&nbsp;&gt;=&nbsp;7)   ;&nbsp;-&nbsp;port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Solaris&nbsp;&gt;=&nbsp;10) ;daemonize&nbsp;=&nbsp;yes          &nbsp;将fpm转至后台运行,如果设置为“no”,那么fpm会运行在前台 ;systemd_interval&nbsp;=&nbsp;10    </pre><p><span class="cnblogs_code_copy"><a title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"/></a></span></p><h3>第三部分:进程池的定义</h3><p><strong>通过监听不同的端口和不用管理选择可以定义多个不同的子进程池</strong>,<strong><span style="color: #ff0000;">进程池被用与记录和统计</span></strong>,对于fpm能够处理进程池数目的多少并没有限制</p><p>其中<span style="color: #ff0000;">$pool</span>变量可以在任何指令中使用,他将会替代相应的进程池名字。例如:这里的<strong>[www]</strong></p><pre>[root@test&nbsp;~]#&nbsp;ps&nbsp;-ef&nbsp;|&nbsp;grep&nbsp;php-fpm root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3028&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;20:33&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00&nbsp;php-fpm:&nbsp;master&nbsp;process&nbsp;(/usr/local/php/etc/php-fpm.conf) nobody&nbsp;&nbsp;&nbsp;&nbsp;3029&nbsp;&nbsp;3028&nbsp;&nbsp;0&nbsp;20:33&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00&nbsp;php-fpm:&nbsp;pool&nbsp;www&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nobody&nbsp;&nbsp;&nbsp;&nbsp;3030&nbsp;&nbsp;3028&nbsp;&nbsp;0&nbsp;20:33&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00&nbsp;php-fpm:&nbsp;pool&nbsp;www</pre><p><span class="cnblogs_code_copy"><a title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"/></a></span></p><pre>;&nbsp;It&nbsp;only&nbsp;applies&nbsp;on&nbsp;the&nbsp;following&nbsp;directives:-&nbsp;&#39;access.log&#39;-&nbsp;&#39;slowlog&#39;-&nbsp;&#39;listen&#39;-&nbsp;&#39;chroot&#39;-&nbsp;&#39;chdir&#39;-&nbsp;&#39;php_values&#39;-&nbsp;&#39;php_admin_values&#39;=&nbsp;/path/to/pools/&nbsp;&nbsp;&nbsp;如果没有制定,将使用全局prefix替代 user&nbsp;=&nbsp;nobody            &nbsp;进程的发起用户和用户组,用户user是必须设置,group不是 group&nbsp;=&nbsp;nobody listen&nbsp;=&nbsp;127.0.0.1:9000      &nbsp;监听ip和端口 ;listen.backlog&nbsp;=&nbsp;65535      &nbsp;设置listen(2)函数backlog ;listen.owner&nbsp;=&nbsp;nobody ;listen.group&nbsp;=&nbsp;nobody ;listen.mode&nbsp;=&nbsp;0660 ;listen.acl_users&nbsp;= ;listen.acl_groups&nbsp;= ;listen.allowed_clients&nbsp;=&nbsp;127.0.0.1&nbsp;允许FastCGI客户端连接的IPv4地址,多个地址用&#39;,&#39;分隔,为空则允许任何地址发来链接请求 ;&nbsp;process.priority&nbsp;=&nbsp;-19 pm&nbsp;=&nbsp;dynamic             &nbsp;选择进程池管理器如何控制子进程的数量   pm.start_servers&nbsp;=&nbsp;2 pm.min_spare_servers&nbsp;=&nbsp;1 pm.max_spare_servers&nbsp;=&nbsp;3 ;pm.process_idle_timeout&nbsp;=&nbsp;10s;  空闲进程超时时间 ;pm.max_requests&nbsp;=&nbsp;500       &nbsp;在派生新的子进程前,每一个子进程应该处理的请求数目,在第三方库中解决内存溢出很有用,设置为0则不会限制 ;pm.status_path&nbsp;=&nbsp;/status   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置一个URI,以便查看fpm状态页  ;ping.path&nbsp;=&nbsp;/ping    该ping&nbsp;URI将会去调用fpm监控页面,如果这个没有设置,那么不会有URI被做为ping页 ;ping.response&nbsp;=&nbsp;pong  用于定制平请求的响应,响应的格式text/plain(对200响应代码) ;access.log&nbsp;=&nbsp;log/$pool.access.log ;access.format&nbsp;=&nbsp;&quot;%R&nbsp;-&nbsp;%u&nbsp;%t&nbsp;\&quot;%m&nbsp;%r%Q%q\&quot;&nbsp;%s&nbsp;%f&nbsp;%{mili}d&nbsp;%{kilo}M&nbsp;%C&quot;    ;slowlog&nbsp;=&nbsp;log/$pool.log.slow  &nbsp;用于记录慢请求 ;request_slowlog_timeout&nbsp;=&nbsp;0  &nbsp;&nbsp;慢日志请求超时时间,对一个php程序进行跟踪。   终止请求超时时间,在worker进程被杀掉之后,提供单个请求的超时间隔。由于某种原因不停止脚本执行时,应该使用该选项,0表示关闭不启用   (在php.ini中,&nbsp;一般设置为30,表示每一个脚本的最大执行时间) ;rlimit_files&nbsp;=&nbsp;1024        设置打开文件描述符的限制 ;rlimit_core&nbsp;=&nbsp;0          &nbsp;设置内核对资源的使用限制,用于内核转储 ;chroot&nbsp;=               设置chroot路径,程序一启动就将其chroot放置到指定的目录下,该指令值必须是一个绝对路径 ;chdir&nbsp;=&nbsp;/var/www          在程序启动时将会改变到指定的位置(这个是相对路径,相对当前路径或chroot后的“/”目录)     ;catch_workers_output&nbsp;=&nbsp;yes    将worker的标准输出和错误输出重定向到主要的错误日志记录中,如果没有设置,根据FastCGI的指定,将会被重定向到/dev/null上 ;clear_env&nbsp;=&nbsp;no          &nbsp;&nbsp;清理环境 ;security.limit_extensions&nbsp;=&nbsp;.php&nbsp;.php3&nbsp;.php4&nbsp;.php5  限制FPM执行解析的扩展名 ;env[HOSTNAME]&nbsp;=&nbsp;$HOSTNAME ;env[PATH]&nbsp;=&nbsp;/usr/local/bin:/usr/bin:/bin ;env[TMP]&nbsp;=&nbsp;/tmp ;env[TMPDIR]&nbsp;=&nbsp;/tmp ;env[TEMP]&nbsp;=&nbsp;/tmp ;&nbsp;Additional&nbsp;php.ini&nbsp;defines,&nbsp;specific&nbsp;to&nbsp;this&nbsp;pool&nbsp;of&nbsp;workers.&nbsp;These&nbsp;settings ;&nbsp;overwrite&nbsp;the&nbsp;values&nbsp;previously&nbsp;defined&nbsp;in&nbsp;the&nbsp;php.ini.&nbsp;The&nbsp;directives&nbsp;are&nbsp;the ;&nbsp;same&nbsp;as&nbsp;the&nbsp;PHP&nbsp;SAPI: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;you&nbsp;can&nbsp;set&nbsp;classic&nbsp;ini&nbsp;defines&nbsp;which&nbsp;can ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;overwritten&nbsp;from&nbsp;PHP&nbsp;call&nbsp;&#39;ini_set&#39;. &nbsp;-&nbsp;these&nbsp;directives&nbsp;won&#39;t&nbsp;be&nbsp;overwritten&nbsp;by ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PHP&nbsp;call&nbsp;&#39;ini_set&#39; ;&nbsp;For&nbsp;php_*flag,&nbsp;valid&nbsp;values&nbsp;are&nbsp;on,&nbsp;off,&nbsp;1,&nbsp;0,&nbsp;true,&nbsp;false,&nbsp;yes&nbsp;or&nbsp;no. ;&nbsp;Defining&nbsp;&#39;extension&#39;&nbsp;will&nbsp;load&nbsp;the&nbsp;corresponding&nbsp;shared&nbsp;extension&nbsp;from ;&nbsp;extension_dir.&nbsp;Defining&nbsp;&#39;disable_functions&#39;&nbsp;or&nbsp;&#39;disable_classes&#39;&nbsp;will&nbsp;not ;&nbsp;overwrite&nbsp;previously&nbsp;defined&nbsp;php.ini&nbsp;values,&nbsp;but&nbsp;will&nbsp;append&nbsp;the&nbsp;new&nbsp;value ;&nbsp;instead. ;php_admin_value[sendmail_path]&nbsp;=&nbsp;/usr/sbin/sendmail&nbsp;-t&nbsp;-i&nbsp;-f&nbsp;www@my.domain.com ;php_flag[display_errors]&nbsp;=&nbsp;off ;php_admin_value[error_log]&nbsp;=&nbsp;/var/log/fpm-php.www.log ;php_admin_flag[log_errors]&nbsp;=&nbsp;on ;php_admin_value[memory_limit]&nbsp;=&nbsp;32M[www] ;&nbsp;It&nbsp;only&nbsp;applies&nbsp;on&nbsp;the&nbsp;following&nbsp;directives:;&nbsp;-&nbsp;&#39;access.log&#39;;&nbsp;-&nbsp;&#39;slowlog&#39;;&nbsp;-&nbsp;&#39;listen&#39;&nbsp;(unixsocket) ;&nbsp;-&nbsp;&#39;chroot&#39;;&nbsp;-&nbsp;&#39;chdir&#39;;&nbsp;-&nbsp;&#39;php_values&#39;;&nbsp;-&nbsp;&#39;php_admin_values&#39;;prefix&nbsp;=&nbsp;/path/to/pools/$pool&nbsp;&nbsp;&nbsp;如果没有制定,将使用全局prefix替代 user&nbsp;=&nbsp;nobody            &nbsp;进程的发起用户和用户组,用户user是必须设置,group不是 group&nbsp;=&nbsp;nobody listen&nbsp;=&nbsp;127.0.0.1:9000      &nbsp;监听ip和端口 ;listen.backlog&nbsp;=&nbsp;65535      &nbsp;设置listen(2)函数backlog ;listen.owner&nbsp;=&nbsp;nobody ;listen.group&nbsp;=&nbsp;nobody ;listen.mode&nbsp;=&nbsp;0660 ;listen.acl_users&nbsp;= ;listen.acl_groups&nbsp;= ;listen.allowed_clients&nbsp;=&nbsp;127.0.0.1&nbsp;允许FastCGI客户端连接的IPv4地址,多个地址用&#39;,&#39;分隔,为空则允许任何地址发来链接请求 ;&nbsp;process.priority&nbsp;=&nbsp;-19 pm&nbsp;=&nbsp;dynamic             &nbsp;选择进程池管理器如何控制子进程的数量   static:  对于子进程的开启数路给定一个锁定的值(pm.max_children)   dynamic: &nbsp;子进程的数目为动态的,它的数目基于下面的指令的值(以下为dynamic适用参数)     pm.max_children:&nbsp;&nbsp;同一时刻能够存货的最大子进程的数量     pm.start_servers:&nbsp;在启动时启动的子进程数量     pm.min_spare_servers:&nbsp;处于空闲&quot;idle&quot;状态的最小子进程,如果空闲进程数量小于这个值,那么相应的子进程会被创建     pm.max_spare_servers:&nbsp;最大空闲子进程数量,空闲子进程数量超过这个值,那么相应的子进程会被杀掉。   ondemand:&nbsp;在启动时不会创建,只有当发起请求链接时才会创建(pm.max_children,&nbsp;pm.process_idle_timeout) pm.max_children&nbsp;=&nbsp;5 pm.start_servers&nbsp;=&nbsp;2 pm.min_spare_servers&nbsp;=&nbsp;1 pm.max_spare_servers&nbsp;=&nbsp;3 ;pm.process_idle_timeout&nbsp;=&nbsp;10s;  空闲进程超时时间 ;pm.max_requests&nbsp;=&nbsp;500       &nbsp;在派生新的子进程前,每一个子进程应该处理的请求数目,在第三方库中解决内存溢出很有用,设置为0则不会限制 ;pm.status_path&nbsp;=&nbsp;/status   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置一个URI,以便查看fpm状态页 状态页描述:   accepted&nbsp;conn:&nbsp;该进程池接受的请求数量   pool:&nbsp;进程池的名字   process&nbsp;manager:&nbsp;进程管理,就是配置中pm指令,可以选择值static,dynamic,ondemand   idle&nbsp;processes:&nbsp;空闲进程数量   active&nbsp;processes:&nbsp;当前活跃的进程数量   total&nbsp;processes:&nbsp;总的进程数量=idle+active   max&nbsp;children&nbsp;reached:&nbsp;达到最大子进程的次数,达到进程的限制,当pm试图开启更多的子进程的时候(仅当pm工作在dynamic时) ;ping.path&nbsp;=&nbsp;/ping    该ping&nbsp;URI将会去调用fpm监控页面,如果这个没有设置,那么不会有URI被做为ping页 ;ping.response&nbsp;=&nbsp;pong  用于定制平请求的响应,响应的格式text/plain(对200响应代码) ;access.log&nbsp;=&nbsp;log/$pool.access.log ;access.format&nbsp;=&nbsp;&quot;%R&nbsp;-&nbsp;%u&nbsp;%t&nbsp;\&quot;%m&nbsp;%r%Q%q\&quot;&nbsp;%s&nbsp;%f&nbsp;%{mili}d&nbsp;%{kilo}M&nbsp;%C&quot;   ;&nbsp;The&nbsp;following&nbsp;syntax&nbsp;is&nbsp;allowed   ;&nbsp;&nbsp;%%:&nbsp;the&nbsp;&#39;%&#39;&nbsp;character   ;&nbsp;&nbsp;%C:&nbsp;%CPU&nbsp;used&nbsp;by&nbsp;the&nbsp;request   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;accept&nbsp;the&nbsp;following&nbsp;format:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{user}C&nbsp;for&nbsp;user&nbsp;CPU&nbsp;only   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{system}C&nbsp;for&nbsp;system&nbsp;CPU&nbsp;only   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{total}C&nbsp;&nbsp;for&nbsp;user&nbsp;+&nbsp;system&nbsp;CPU&nbsp;(default)   ;&nbsp;&nbsp;%d:&nbsp;time&nbsp;taken&nbsp;to&nbsp;serve&nbsp;the&nbsp;request   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;accept&nbsp;the&nbsp;following&nbsp;format:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{seconds}d&nbsp;(default)   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{miliseconds}d   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{mili}d   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{microseconds}d   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{micro}d   ;&nbsp;&nbsp;%e:&nbsp;an&nbsp;environment&nbsp;variable&nbsp;(same&nbsp;as&nbsp;$_ENV&nbsp;or&nbsp;$_SERVER)   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;must&nbsp;be&nbsp;associated&nbsp;with&nbsp;embraces&nbsp;to&nbsp;specify&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;env   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variable.&nbsp;Some&nbsp;exemples:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;server&nbsp;specifics&nbsp;like:&nbsp;%{REQUEST_METHOD}e&nbsp;or&nbsp;%{SERVER_PROTOCOL}e   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;HTTP&nbsp;headers&nbsp;like:&nbsp;%{HTTP_HOST}e&nbsp;or&nbsp;%{HTTP_USER_AGENT}e   ;&nbsp;&nbsp;%f:&nbsp;script&nbsp;filename   ;&nbsp;&nbsp;%l:&nbsp;content-length&nbsp;of&nbsp;the&nbsp;request&nbsp;(for&nbsp;POST&nbsp;request&nbsp;only)   ;&nbsp;&nbsp;%m:&nbsp;request&nbsp;method   ;&nbsp;&nbsp;%M:&nbsp;peak&nbsp;of&nbsp;memory&nbsp;allocated&nbsp;by&nbsp;PHP   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;accept&nbsp;the&nbsp;following&nbsp;format:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{bytes}M&nbsp;(default)   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{kilobytes}M   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{kilo}M   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{megabytes}M   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{mega}M   ;&nbsp;&nbsp;%n:&nbsp;pool&nbsp;name   ;&nbsp;&nbsp;%o:&nbsp;output&nbsp;header   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;must&nbsp;be&nbsp;associated&nbsp;with&nbsp;embraces&nbsp;to&nbsp;specify&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;header:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{Content-Type}o   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{X-Powered-By}o   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;%{Transfert-Encoding}o   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;….   ;&nbsp;&nbsp;%p:&nbsp;PID&nbsp;of&nbsp;the&nbsp;child&nbsp;that&nbsp;serviced&nbsp;the&nbsp;request   ;&nbsp;&nbsp;%P:&nbsp;PID&nbsp;of&nbsp;the&nbsp;parent&nbsp;of&nbsp;the&nbsp;child&nbsp;that&nbsp;serviced&nbsp;the&nbsp;request   ;&nbsp;&nbsp;%q:&nbsp;the&nbsp;query&nbsp;string   ;&nbsp;&nbsp;%Q:&nbsp;the&nbsp;&#39;?&#39;&nbsp;character&nbsp;if&nbsp;query&nbsp;string&nbsp;exists   ;&nbsp;&nbsp;%r:&nbsp;the&nbsp;request&nbsp;URI&nbsp;(without&nbsp;the&nbsp;query&nbsp;string,&nbsp;see&nbsp;%q&nbsp;and&nbsp;%Q)   ;&nbsp;&nbsp;%R:&nbsp;remote&nbsp;IP&nbsp;address   ;&nbsp;&nbsp;%s:&nbsp;status&nbsp;(response&nbsp;code)   ;&nbsp;&nbsp;%t:&nbsp;server&nbsp;time&nbsp;the&nbsp;request&nbsp;was&nbsp;received   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;accept&nbsp;a&nbsp;strftime(3)&nbsp;format:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%d/%b/%Y:%H:%M:%S&nbsp;%z&nbsp;(default)   ;&nbsp;&nbsp;%T:&nbsp;time&nbsp;the&nbsp;log&nbsp;has&nbsp;been&nbsp;written&nbsp;(the&nbsp;request&nbsp;has&nbsp;finished)   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;can&nbsp;accept&nbsp;a&nbsp;strftime(3)&nbsp;format:   ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%d/%b/%Y:%H:%M:%S&nbsp;%z&nbsp;(default)   ;&nbsp;&nbsp;%u:&nbsp;remote&nbsp;user ;slowlog&nbsp;=&nbsp;log/$pool.log.slow  &nbsp;用于记录慢请求 ;request_slowlog_timeout&nbsp;=&nbsp;0  &nbsp;&nbsp;慢日志请求超时时间,对一个php程序进行跟踪。 ;request_terminate_timeout&nbsp;=&nbsp;0  终止请求超时时间,在worker进程被杀掉之后,提供单个请求的超时间隔。由于某种原因不停止脚本执行时,应该使用该选项,0表示关闭不启用   (在php.ini中,max_execution_time&nbsp;一般设置为30,表示每一个脚本的最大执行时间) ;rlimit_files&nbsp;=&nbsp;1024        设置打开文件描述符的限制 ;rlimit_core&nbsp;=&nbsp;0          &nbsp;设置内核对资源的使用限制,用于内核转储 ;chroot&nbsp;=               设置chroot路径,程序一启动就将其chroot放置到指定的目录下,该指令值必须是一个绝对路径 ;chdir&nbsp;=&nbsp;/var/www          在程序启动时将会改变到指定的位置(这个是相对路径,相对当前路径或chroot后的“/”目录)     ;catch_workers_output&nbsp;=&nbsp;yes    将worker的标准输出和错误输出重定向到主要的错误日志记录中,如果没有设置,根据FastCGI的指定,将会被重定向到/dev/null上 ;clear_env&nbsp;=&nbsp;no          &nbsp;&nbsp;清理环境 ;security.limit_extensions&nbsp;=&nbsp;.php&nbsp;.php3&nbsp;.php4&nbsp;.php5  限制FPM执行解析的扩展名 ;env[HOSTNAME]&nbsp;=&nbsp;$HOSTNAME ;env[PATH]&nbsp;=&nbsp;/usr/local/bin:/usr/bin:/bin ;env[TMP]&nbsp;=&nbsp;/tmp ;env[TMPDIR]&nbsp;=&nbsp;/tmp ;env[TEMP]&nbsp;=&nbsp;/tmp;&nbsp;Additional&nbsp;php.ini&nbsp;defines,&nbsp;specific&nbsp;to&nbsp;this&nbsp;pool&nbsp;of&nbsp;workers.&nbsp;These&nbsp;settings ;&nbsp;overwrite&nbsp;the&nbsp;values&nbsp;previously&nbsp;defined&nbsp;in&nbsp;the&nbsp;php.ini.&nbsp;The&nbsp;directives&nbsp;are&nbsp;the ;&nbsp;same&nbsp;as&nbsp;the&nbsp;PHP&nbsp;SAPI: ;&nbsp;&nbsp;&nbsp;php_value/php_flag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;you&nbsp;can&nbsp;set&nbsp;classic&nbsp;ini&nbsp;defines&nbsp;which&nbsp;can ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;overwritten&nbsp;from&nbsp;PHP&nbsp;call&nbsp;&#39;ini_set&#39;. ;&nbsp;&nbsp;&nbsp;php_admin_value/php_admin_flag&nbsp;-&nbsp;these&nbsp;directives&nbsp;won&#39;t&nbsp;be&nbsp;overwritten&nbsp;by ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PHP&nbsp;call&nbsp;&#39;ini_set&#39; ;&nbsp;For&nbsp;php_*flag,&nbsp;valid&nbsp;values&nbsp;are&nbsp;on,&nbsp;off,&nbsp;1,&nbsp;0,&nbsp;true,&nbsp;false,&nbsp;yes&nbsp;or&nbsp;no.;&nbsp;Defining&nbsp;&#39;extension&#39;&nbsp;will&nbsp;load&nbsp;the&nbsp;corresponding&nbsp;shared&nbsp;extension&nbsp;from ;&nbsp;extension_dir.&nbsp;Defining&nbsp;&#39;disable_functions&#39;&nbsp;or&nbsp;&#39;disable_classes&#39;&nbsp;will&nbsp;not ;&nbsp;overwrite&nbsp;previously&nbsp;defined&nbsp;php.ini&nbsp;values,&nbsp;but&nbsp;will&nbsp;append&nbsp;the&nbsp;new&nbsp;value ;&nbsp;instead.;php_admin_value[sendmail_path]&nbsp;=&nbsp;/usr/sbin/sendmail&nbsp;-t&nbsp;-i&nbsp;-f&nbsp;www@my.domain.com ;php_flag[display_errors]&nbsp;=&nbsp;off ;php_admin_value[error_log]&nbsp;=&nbsp;/var/log/fpm-php.www.log ;php_admin_flag[log_errors]&nbsp;=&nbsp;on ;php_admin_value[memory_limit]&nbsp;=&nbsp;32M      </pre><p><span class="cnblogs_code_copy"><a title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码"/></a></span></p><h3>总结</h3><p>1) 在php-fpm的配置文件中,有两个指令非常重要,就是&quot;pm.max_children&quot; 和 &quot;request_terminate_timeout&quot;</p><p> 第一个指令&quot;<span style="color: #0000ff;"><strong>pm.max_children</strong></span>&quot; 确定了php-fpm的处理能力,原则上时越多越好,但这个是在内存足够打的前提下,每开启一个php-fpm进程要占用近30M左右的内存</p><p> 如果请求访问较多,那么可能会出现502,504错误。对于502错误来说,属于繁忙进程而造成的,对于504来说,就是客户发送的请求在限定的时间内没有得到相应,过多的请求导致“504&nbsp; Gateway&nbsp; Time-out”。这里也有可能是服务器带宽问题。</p><p>&nbsp;&nbsp;&nbsp; 另外一个需要注意的指令&quot;<strong><span style="color: #0000ff;">request_terminate_timeout</span></strong>&quot;,它决定php-fpm进程的连接/发送和读取的时间,如果设置过小很容易出现&quot;502 Bad Gateway&quot; 和 “504&nbsp; Gateway&nbsp; Time-out”,默认为0,就是说没有启用,不加限制,但是这种设置前提是你的php-fpm足够健康,这个需要根据实际情况加以限定。</p><p><br/></p>