重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
pool叫做池子,比如下图中的www就是一个池子,目前在php-fpm中只定义了这一个pool,其实php-fpm是支持定义多个pool的,每一个池子可以监听不同的socket或者IP+端口,比如nginx有多个站点,那么每一个站点就可以使用一个pool,这样做的好处是,当其中一个php出现502了,502很有可能是php资源不够了,如果所有的网站使用的是同一个pool,那么其中一个网站发生了一些故障,比如一些程序员写的程序有问题,它就会把php资源耗尽,那这样就会造成一个结果是其他的站点也会502,所有我们有必要把每一个站点隔离开来,每一个站点使用单独的pool
莒县网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。如何写多个pool呢,php里面可以在配置文件中继续增加pool
1、编辑配置文件
# vi /usr/local/php-fpm/etc/php-fpm.conf
我们在配置文件中新增一个池子lijie.com
[lijie.com]
listen = /tmp/lijie.sock
#listen = 127.0.0.1:9000
listen.mode = 666
user = php-fpm
group = php-fpm
#listen.owner = nobody
#listen.group = nobody
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
2、检查语法错误
# /usr/local/php-fpm/sbin/php-fpm-t
3、重新加载php-fpm服务
# /etc/init.d/php-fpmreload
4、查看新增pool是否生效
# ps aux |grep pool //下图可以看到pool中已经存在lijie.com了
5、pool的使用
如果想给网站aaa.com配置上面新增的pool,可以在网站对应的nginx虚拟主机配置文件/usr/local/nginx/conf/vhost/aaa.com.conf中做如下配置:
上面的配置中要求监听的路径(socket或者IP)与在php-fpm.conf中配置的pool监听的路径一致
配置完成后,就实现了test.com请求的是www这个pool,aaa.com请求的是lijie.com这个pool,这时候假如test.com的请求量很大,把php-fpm的进程耗尽了,可以请求50个,结果当50个已经请求完,这时test.com又有新的请求来的时候,结果就会报502,因为它没有多余的php进程再来提供服务了,此时呢 aaa.com这个站点不受影响,因为它用到的pool是另外一个
6、include vhost/*.conf
在nginx.conf中我们支持include vhost/*.conf的写法来将不同虚拟主机的配置文件分开写在不同的文件中,同样的在php-fpm中也支持这种写法,这样写了后,可以将不同的pool分开写在不同的文件中
首先创建一个目录用于存放所有的pool
# mkdir /usr/local/php-fpm/etc/php-fpm.d
然后在/usr/local/php-fpm/etc/php-fpm.conf 的[global]中加入以下语句:
include = etc/php-fpm.d/*.conf
同时,将原来的两个pool分别写入到两个新建的文件中,并将这两个文件放到/usr/local/php-fpm/etc/php-fpm.d/目录下,
修改后的结果如下:
1)php-fpm.conf中的内容如下:
2)php-fpm.d目录下的文件有以下两个:
3)其中www.conf中的内容如下:
4)lijie.conf中的内容如下:
二 php-fpm慢执行日志这个慢执行日志非常有用。建议使用LNMP的原因之一是我们可以分析php-fpm的慢执行日志。我们在运维工作中,经常会遇到一个问题,老板或者客户反映网站慢了,要想知道网站慢的原因,先不说java网站,php的网站是有办法查网站慢在哪里,像系统负载高,我们可以用各种工具,如vmstat、iostat、stop等,就能找到是哪个进程导致它负载高,而在这里分析网站慢,是要找出证据证明慢在哪里的