首页 / PHP / 12.21 php-fpm的pool
12.21 php-fpm的pool
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了12.21 php-fpm的pool,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3280字,纯文字阅读大概需要5分钟。
内容图文
12.21 php-fpm的pool和LAMP不同的是,在LNMP架构中,php-fpm座位独立的一个服务存在。既然是独立服务,那么它必然有自己的配置文件。
php-fpm的配置文件为/usr/local/php-fpm/etc/php-fpm.conf,它同样也支持include语句,类似于nginx.conf里面的include。
Nginx可以配置多个虚拟主机,php-fpm同样也支持配置多个pool,每一个pool可以监听一个端口(ip:port),也可以监听一个socket。
为什么要隔离pool?
因为如果pool有某一个站点发生问题,例如其中一个站点占用了庞大的资源,导致其他站点运行卡顿,或者奔溃,所以这样会牵连pool里面其他站点的运行。
定义pool
1 进入php-fpm/etc/配置目录
[root@AliKvn ~]# cd /usr/local/php-fpm/etc/
[root@AliKvn etc]# ls
pear.conf php-fpm.conf php-fpm.conf.default php.ini
2 添加pool,名为aming.com,参数如下。
[root@AliKvn etc]# vim php-fpm.conf [aming.com] listen = /tmp/aming.sock #listen = 127.0.0.1:9000 listen.mode = 666 user = php-fpm group = php-fpm 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
3 添加完成后-t检查语法并重启或者reload。
[root@AliKvn etc]# /usr/local/php-fpm/sbin/php-fpm -t
[02-May-2018 11:32:20] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@AliKvn etc]# /etc/init.d/php-fpm reload
Reload service php-fpm done
4 查看进程,看看进程右侧有没有多了刚刚配置的pool(aming.com)
5 修改aaa.com监听aming的socket,添加如下参数
location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; # fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name; } }
6 加入 include语法,拆分pool的配置文件conf
include = etc/php-fpm.d/*.conf
[root@AliKvn php-fpm.d]# !vim
vim /usr/local/php-fpm/etc/php-fpm.conf
[global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log include = etc/php-fpm.d/*.conf
6.1 复制参数
创建php-fpm.d目录
[root@AliKvn etc]# mkdir php-fpm.d
[root@AliKvn etc]# cd php-fpm.d/
[root@AliKvn php-fpm.d]# cat /usr/local/php-fpm/etc/php-fpm.conf
[root@AliKvn php-fpm.d]# vim www.conf
6.2 复制www参数到www.conf
[www] listen = /tmp/php-fcgi.sock #listen = 127.0.0.1:9000 listen.mode = 666 user = php-fpm group = php-fpm 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
[root@AliKvn php-fpm.d]# vim aming.conf
6.3 复制aming.com参数到aming.conf
[aming.com] listen = /tmp/aming.sock #listen = 127.0.0.1:9000 listen.mode = 666 user = php-fpm group = php-fpm 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
6.4 [root@AliKvn php-fpm.d]# ls
aming.conf www.conf
7 复制完成后,删除php-fpm.conf两个pool的参数,加入include语法,再删除后可以看到参数是多么的干净利落。
[root@AliKvn php-fpm.d]# cat !$
cat /usr/local/php-fpm/etc/php-fpm.conf
[global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log include = etc/php-fpm.d/*.conf
8 检查语法并重新加载。
[root@AliKvn php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[02-May-2018 12:07:00] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@AliKvn php-fpm.d]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
9 重启后检查进程
总结
定义多个pool的原因:
假如现在test.com的请求量很大,导致最终把php-fpm进程耗尽了。
最多可以启动50个子进程,但是启动完50个进程后,所有都在忙,又有新的请求来的时候,
此时会报502状态码,因为没有多余的php-fpm进程给请求监听服务。
而另外一个pool(aming.com)请求则不会受影响,因为它是另外一个pool。
原文:http://blog.51cto.com/13578154/2110637
内容总结
以上是互联网集市为您收集整理的12.21 php-fpm的pool全部内容,希望文章能够帮你解决12.21 php-fpm的pool所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。