12.21 php-fpm的pool
首先看一下配置# cat /usr/local/php-fpm/etc/php-fpm.conf
php-fpm默认使用一个pool,如果多个网站使用一个pool,当其中一个站点有问题把pool资源耗尽,那其他站点也会502,所以有必要把每个站点隔离开来,每个站点使用单独的pool。
我们可以在配置文件中继续增加内容来设置新的pool
# vim /usr/local/php-fpm/etc/php-fpm.conf
检查语法 重启php-fpm
查看进程
# ps aux |grep php-fpm
那怎么去用这个池子呢?
# cd /usr/local/nginx/conf/vhost/
#cat test.com.conf //监听/tmp/php-fcgi.sock
# vim aaa.com.conf
这样两个站点就隔离开了,pool进程最多50个,www资源耗尽不会影响aming
我们还可以这样设置来达到同样的效果
#vim /usr/local/php-fpm/etc/php-fpm.conf //在global内添加一行include =/usr/local/php-fpm/etc/php-fpm.d/*.conf
# mkdir /usr/local/php-fpm/etc/php-fpm.d/
#cd !$
然后把关于php-fpm.conf中关于pool的设置拆出来分别放到,新建的www.conf和aming.conf中
配置完成要检查语法,重启
# /usr/local/php-fpm/sbin/php-fpm -t
# /etc/init.d/php-fpm restart
12.22 php-fpm慢执行日志
# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf //添加2行配置
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
一般设置的是2秒,这里做试验设置为1秒
检查语法重启服务
# /usr/local/php-fpm/sbin/php-fpm -t
# /etc/init.d/php-fpm restart
查看日志
# ls /usr/local/php-fpm/var/log/
日志是空的,因为我们没有超过1秒的
模拟一个慢执行的php
# vim /data/wwwroot/test.com/sleep.php //创建一个php文件,写入下面内容(休眠2秒钟)
访问
# curl -x127.0.0.1:80 test.com/sleep.php
查看日志
# cat /usr/local/php-fpm/var/log/www-slow.log
日志不仅告诉我们哪个文件执行慢,还告诉我们这个文件的第三行执行慢,这就是慢执行日志的功能。